3e1675f87e 
								
							 
						 
						
							
							
								
								Specify resolver=2 in the Cargo workspace  
							
							 
							
							
							
						 
						
							2024-01-24 17:10:44 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								88c0638d83 
								
							 
						 
						
							
							
								
								[board] Check that move is in sight of piece  
							
							 
							
							... 
							
							
							
							If it's not, return an error from MoveBuilder::make() 
							
						 
						
							2024-01-24 17:10:10 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								1b5319c702 
								
							 
						 
						
							
							
								
								[board] Pass a Color to Position::king_square  
							
							 
							
							... 
							
							
							
							Now it can return either color's king. 
							
						 
						
							2024-01-24 17:09:15 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								8b2a3926b3 
								
							 
						 
						
							
							
								
								[core,board] Move board::piece to core  
							
							 
							
							... 
							
							
							
							Break up types in core into finer grained modules.
Update all the imports. 
							
						 
						
							2024-01-24 17:08:27 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3c71687838 
								
							 
						 
						
							
							
								
								Merge branch 'many-crates'  
							
							 
							
							... 
							
							
							
							# Conflicts:
#	Cargo.toml
#	core/Cargo.toml 
							
						 
						
							2024-01-24 09:23:35 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6f85305912 
								
							 
						 
						
							
							
								
								[board] Clean up a bunch of build errors  
							
							 
							
							... 
							
							
							
							Fix imports to refer to core and bitboard crates.
Fix some API use errors. 
							
						 
						
							2024-01-24 09:18:12 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3cec64d686 
								
							 
						 
						
							
							
								
								[bitboard] Make the bitboard crate more crate-like  
							
							 
							
							... 
							
							
							
							Export symbols needed to use BitBoard and BitBoardBuilder.
Fix build errors. 
							
						 
						
							2024-01-24 09:16:21 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d901be53d2 
								
							 
						 
						
							
							
								
								[explorer] Depends on core  
							
							 
							
							
							
						 
						
							2024-01-24 09:15:18 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7738f30e5e 
								
							 
						 
						
							
							
								
								Fix the workspace members  
							
							 
							
							... 
							
							
							
							The items in the members array are paths, not crate names. 
							
						 
						
							2024-01-24 09:14:59 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b0b22048a8 
								
							 
						 
						
							
							
								
								[core] Rename (once again) chess_core → chessfriend_core  
							
							 
							
							
							
						 
						
							2024-01-24 08:48:19 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								625bfb2446 
								
							 
						 
						
							
							
								
								[bitboard] Move everything in board::bitboard to the bitboard crate  
							
							 
							
							
							
						 
						
							2024-01-24 08:35:28 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								32100b9553 
								
							 
						 
						
							
							
								
								[bitboard] Make an empty chess_bitboard crate  
							
							 
							
							... 
							
							
							
							This crate lives in bitboard/ 
							
						 
						
							2024-01-24 08:34:23 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								eab30cc33b 
								
							 
						 
						
							
							
								
								[core] Rename the directory chess_core → core  
							
							 
							
							... 
							
							
							
							I think this is sufficient. 
							
						 
						
							2024-01-24 08:33:07 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								106800bcb3 
								
							 
						 
						
							
							
								
								[core,board] Update all use imports referring to Square, Rank, and File  
							
							 
							
							
							
						 
						
							2024-01-24 08:32:09 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3c3a62345d 
								
							 
						 
						
							
							
								
								[core] Rename core → chess_core  
							
							 
							
							
							
						 
						
							2024-01-24 08:29:16 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								406631b617 
								
							 
						 
						
							
							
								
								[core] Move the contents of board::square to core::coordinates  
							
							 
							
							... 
							
							
							
							Export Square, Rank, and File from the core crate. 
							
						 
						
							2024-01-24 08:25:56 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7e08a9adc4 
								
							 
						 
						
							
							
								
								[core] Create a core crate  
							
							 
							
							
							
						 
						
							2024-01-24 08:24:59 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								025ceb2694 
								
							 
						 
						
							
							
								
								[core] Move the contents of board::square to core::cordinates  
							
							 
							
							... 
							
							
							
							Export Square, Direction, Rank, and File from the core crate. 
							
						 
						
							2024-01-23 17:18:48 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e522e268cf 
								
							 
						 
						
							
							
								
								Make a Cargo Workspace!  
							
							 
							
							
							
						 
						
							2024-01-22 19:33:59 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								1ebe7d10de 
								
							 
						 
						
							
							
								
								Move Notes and ChessPieces docs to a doc directory  
							
							 
							
							
							
						 
						
							2024-01-22 19:27:08 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								90266f2dd0 
								
							 
						 
						
							
							
								
								[board] Make the MoveSet struct (and its internal structs) public for the crate  
							
							 
							
							
							
						 
						
							2024-01-22 08:20:38 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3244bfc211 
								
							 
						 
						
							
							
								
								[board] Make the fen module public so clients can access ToFen  
							
							 
							
							
							
						 
						
							2024-01-22 08:19:09 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								c2a115cee9 
								
							 
						 
						
							
							
								
								[board] Implement Display for Color  
							
							 
							
							
							
						 
						
							2024-01-22 08:18:49 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7424236f1d 
								
							 
						 
						
							
							
								
								[board] Add MakeMoveError::IllegalSquare(Square)  
							
							 
							
							
							
						 
						
							2024-01-22 08:18:37 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								9a8380573b 
								
							 
						 
						
							
							
								
								[board] Move MakeMoveBuilder::new() to an impl that specifies NoMove  
							
							 
							
							... 
							
							
							
							I can build these now without having to specify a type for M. 
							
						 
						
							2024-01-22 08:18:19 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								bf2bccbc7d 
								
							 
						 
						
							
							
								
								[board] Implement PositionBuilder::from_position  
							
							 
							
							... 
							
							
							
							Create a PositionBuilder from a Position. 
							
						 
						
							2024-01-22 08:12:55 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								c1008ef672 
								
							 
						 
						
							
							
								
								[board] Put a cached Moves object into a OnceCell on Position  
							
							 
							
							... 
							
							
							
							Cache move generation so we don't have to remake it every time. 
							
						 
						
							2024-01-22 08:12:28 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								8dbf44c741 
								
							 
						 
						
							
							
								
								[board] Rename position::MoveBuilder → MakeMoveBuilder  
							
							 
							
							
							
						 
						
							2024-01-22 08:11:02 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								c642c1158a 
								
							 
						 
						
							
							
								
								[board] Implement TryFrom on string types for Color and Shape  
							
							 
							
							
							
						 
						
							2024-01-22 08:10:40 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3dfebb22eb 
								
							 
						 
						
							
							
								
								[board] Declare ToFen and implement it on Position and supporting types  
							
							 
							
							... 
							
							
							
							I can now print a position in FEN! 
							
						 
						
							2024-01-21 15:10:59 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								dbbf2d4c46 
								
							 
						 
						
							
							
								
								[board] Implement ply and full move counters on Position  
							
							 
							
							... 
							
							
							
							Pipe these numbers through the Builders 
							
						 
						
							2024-01-21 15:10:04 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								829d9af52c 
								
							 
						 
						
							
							
								
								[board] Fix some bugs in the starting position  
							
							 
							
							... 
							
							
							
							Turns out I was doing the starting position really wrong. In an upcoming commit,
I will implement FEN output for Positions. While doing that work, I found several
issues that were causing the output of the FEN formatter to return garbage.
Implement a handful of unit tests to track down the errors.
Rename Shape::_ascii_representation() → Shape::to_ascii.
Implement to_ascii() on Piece. 
							
						 
						
							2024-01-21 14:56:03 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								84c9c43a7d 
								
							 
						 
						
							
							
								
								[board] Add a few comments in position::position  
							
							 
							
							... 
							
							
							
							One TODO
And one doc comment. 
							
						 
						
							2024-01-21 13:07:07 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								704ee2f425 
								
							 
						 
						
							
							
								
								[board] Implement a test_position macro that prints a Position after it builds it  
							
							 
							
							... 
							
							
							
							Update the sight tests to use test_position!
Remove a stray leftover mut.
Clean up the test imports. 
							
						 
						
							2024-01-21 13:06:44 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3c699b0b3d 
								
							 
						 
						
							
							
								
								[board] Remove the intermediate String when building a diagram representation of a Position  
							
							 
							
							... 
							
							
							
							Also ignore the tests in position::diagram_formatter::tests. These don't assert
anything; they're just there for visual spot check. 
							
						 
						
							2024-01-21 13:02:06 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								72316ad5f5 
								
							 
						 
						
							
							
								
								[board] Write a bunch of tests to validate the flag methods on Move  
							
							 
							
							... 
							
							
							
							I caught a bunch of bugs while implementing position::MoveBuilder in the flag
methods that Move exports. These tests caught many of them! 
							
						 
						
							2024-01-21 13:01:03 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								f90ea2d1be 
								
							 
						 
						
							
							
								
								[board] Add a test for capturing en passant; fix the bugs  
							
							 
							
							... 
							
							
							
							I wrote a test for capturing en passant that revealed some bugs. Cool!
Implement the missing part of move validation that checks for an en passant move.
Implement PositionBuilder::to_move() to set player_to_move.
The most difficult part of this fix was finding the logic error in
Move::is_en_passant(). Instead of checking for non-zero, check for equality against
the en passant flag value. Checking for non-zero was causing this method to return
true in the double push case. 
							
						 
						
							2024-01-21 11:21:37 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								683d89b726 
								
							 
						 
						
							
							
								
								[board] Convert a few more Piece and PlacedPiece to pass by ref  
							
							 
							
							
							
						 
						
							2024-01-21 10:39:57 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								8835d8b40e 
								
							 
						 
						
							
							
								
								[board] Add position::tests::rook_for_castle  
							
							 
							
							
							
						 
						
							2024-01-21 10:39:24 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								fa1c6b452e 
								
							 
						 
						
							
							
								
								[board] Remove BoardSide enum; use Castle everywhere  
							
							 
							
							... 
							
							
							
							Move Castle to a castle module inside the move module.
Implement into_index() on Castle to turn it into a usize. 
							
						 
						
							2024-01-21 10:38:50 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								21b5266789 
								
							 
						 
						
							
							
								
								[board] Implement position::builders::MoveBuilder  
							
							 
							
							... 
							
							
							
							This builder takes a Position and a Move, validates the move, and makes the move
in that position. Its build() method returns a new Position with the move made. 
							
						 
						
							2024-01-21 09:23:39 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7b8ce3b31d 
								
							 
						 
						
							
							
								
								[board] Derive Copy for Move  
							
							 
							
							
							
						 
						
							2024-01-21 09:21:48 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								32ee25539d 
								
							 
						 
						
							
							
								
								[board] Fix some en passant related stuff in the the sight module  
							
							 
							
							
							
						 
						
							2024-01-21 09:21:27 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d298a55254 
								
							 
						 
						
							
							
								
								[board] Clean up some stray muts and imports in the bishop move generator module  
							
							 
							
							
							
						 
						
							2024-01-21 09:20:31 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								4a5ae8ec59 
								
							 
						 
						
							
							
								
								[board] Move position builders into a builders module  
							
							 
							
							... 
							
							
							
							Move PositionBuilder to position_builder.rs and export it from the builders module. 
							
						 
						
							2024-01-21 09:20:03 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								1a907844d6 
								
							 
						 
						
							
							
								
								[board] Update a bunch of methods to take &Piece instead of plain Piece  
							
							 
							
							
							
						 
						
							2024-01-21 09:18:16 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								f7951d6110 
								
							 
						 
						
							
							
								
								[board] Implement some is_shape getters on Piece and PlacedPiece  
							
							 
							
							
							
						 
						
							2024-01-21 09:15:41 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								620701057d 
								
							 
						 
						
							
							
								
								[board] Rehash BitBoard's std::ops implementations  
							
							 
							
							... 
							
							
							
							Implement bitwise AND and OR for all permutations of BitBoard and &BitBoard.
Refer to the std::ops traits by fully-qualified path rather than requiring the
module to import those traits to implement them.
Implement bitwise AND and OR assignment (&= and |=) for BitBoard and &BitBoard.
Implement XOR and XOR assignment for BitBoards. 
							
						 
						
							2024-01-21 09:14:02 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								918b68f300 
								
							 
						 
						
							
							
								
								[board] Use Castle as the interface type for methods related to castling  
							
							 
							
							... 
							
							
							
							Use BoardSide as an internal type for looking up generated bitboards, target squares, etc. 
							
						 
						
							2024-01-21 09:05:42 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7071f6a742 
								
							 
						 
						
							
							
								
								[board] Cave to pressure and implement fmt::Display for Position  
							
							 
							
							... 
							
							
							
							It prints a nice diagram!
Now I can make the position module private. 
							
						 
						
							2024-01-19 18:12:28 -08:00