1f78d4811a 
								
							 
						 
						
							
							
								
								[core] Declare Rank::PAWN_STARTING_RANKS  
							
							 
							
							... 
							
							
							
							This is a slice that declares the pawn starting ranks for each color. 
							
						 
						
							2024-01-29 14:46:16 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								cb48413ce7 
								
							 
						 
						
							
							
								
								[bitboard] Implement BitBoard::is_single_square()  
							
							 
							
							... 
							
							
							
							Returns true if there's only one square set in the bitboard. 
							
						 
						
							2024-01-29 14:46:16 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								0f664f6c80 
								
							 
						 
						
							
							
								
								[bitboard] Implement BitBoard::as_bits; let rank and file take &u8 instead of usize  
							
							 
							
							
							
						 
						
							2024-01-29 14:46:16 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								21c81f237a 
								
							 
						 
						
							
							
								
								[core] Implement as_index() for range_bound_struct  
							
							 
							
							
							
						 
						
							2024-01-29 14:46:16 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								dab787170c 
								
							 
						 
						
							
							
								
								[position] Clean up rook unit tests  
							
							 
							
							... 
							
							
							
							Use test_position! instead of position!
Spell out the PlacedPiece constructor in the test_position! macro. 
							
						 
						
							2024-01-28 10:28:01 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								ea74b214da 
								
							 
						 
						
							
							
								
								[position] Implement generating pawn moves by looking up bitboards in the Library  
							
							 
							
							... 
							
							
							
							This enables a bunch of clean up! Remove the MoveGenerationParameters and MoveList
types from move_generator::pawn.
Implement BitBoard::pawn_pushes to look up pawn pushes by square and color. 
							
						 
						
							2024-01-28 10:25:01 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								77f419ad3b 
								
							 
						 
						
							
							
								
								[position] Rename FenError → ToFenError  
							
							 
							
							... 
							
							
							
							Add an associated type called Error to the ToFen trait. This mirrors the try_from
any try_into traits. 
							
						 
						
							2024-01-28 10:05:51 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								808526f8f7 
								
							 
						 
						
							
							
								
								[position] Rename the board crate -> position  
							
							 
							
							... 
							
							
							
							Merge the 'rename-board-crate' branch to 'main'. 
							
						 
						
							2024-01-28 09:59:11 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								ed55eda901 
								
							 
						 
						
							
							
								
								Update the Cargo.toml files  
							
							 
							
							
							
						 
						
							2024-01-28 09:58:50 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								220da08727 
								
							 
						 
						
							
							
								
								Directly rename board -> position  
							
							 
							
							
							
						 
						
							2024-01-28 09:56:57 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								569693bda9 
								
							 
						 
						
							
							
								
								Merge branch 'main' into rename-board-crate  
							
							 
							
							... 
							
							
							
							# Conflicts:
#	explorer/src/main.rs 
							
						 
						
							2024-01-28 09:55:53 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								8eb180df67 
								
							 
						 
						
							
							
								
								[explorer] Add fen and make commands  
							
							 
							
							... 
							
							
							
							Clean up the implementation of the place command.
Track state with a State struct that contains a position and a builder. The place
command will place a new piece and then regenerate the position.
The make command makes a move. The syntax is:
    make [color:w|b] [shape] [from square] [to square]
The fen command prints a FEN string representing the position. 
							
						 
						
							2024-01-28 09:50:39 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6bd3787a24 
								
							 
						 
						
							
							
								
								[board] Write test_position!({starting,empty}) macros  
							
							 
							
							... 
							
							
							
							These produce starting and empty positions, respectively, and then print the
position. 
							
						 
						
							2024-01-28 09:47:25 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								66d03d3514 
								
							 
						 
						
							
							
								
								[board] Clean up a bunch of imports  
							
							 
							
							
							
						 
						
							2024-01-28 09:46:38 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								1e77bc5ebb 
								
							 
						 
						
							
							
								
								[board] Test to verify the king can't move into or stay in check  
							
							 
							
							... 
							
							
							
							Write a test on the king move generator to verify the king can't move to a
square where it would still be in check. 
							
						 
						
							2024-01-28 09:45:13 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								76ac719418 
								
							 
						 
						
							
							
								
								[position] Rename the board crate → chessfriend_position in Cargo.toml  
							
							 
							
							... 
							
							
							
							Rename the crate, but don't move any files. 
							
						 
						
							2024-01-28 09:40:45 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b002442b42 
								
							 
						 
						
							
							
								
								[board] Implement a custom PartialEq on Position  
							
							 
							
							... 
							
							
							
							We don't need to compare cached data. The load-bearing parts of a Position are:
player to move, position of all pieces, flags, and en passant status.
Inspiration for this implementation came from the FEN spec. It specifies all
these in the string. 
							
						 
						
							2024-01-28 09:16:22 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								1f873879bb 
								
							 
						 
						
							
							
								
								[bitboard] Add pawn attacks bitboards to the Library  
							
							 
							
							
							
						 
						
							2024-01-28 09:08:57 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								164fe94bc0 
								
							 
						 
						
							
							
								
								[board] Implement danger squares for the current player  
							
							 
							
							... 
							
							
							
							This concept comes from [1]. Danger squares are the squares a king cannot move to
because it would permit the opposing player to capture the king on their next
turn.
[1]: https://peterellisjones.com/posts/generating-legal-chess-moves-efficiently/  
							
						 
						
							2024-01-28 09:08:22 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								654e4094d9 
								
							 
						 
						
							
							
								
								[board] Restructure the move_generator module  
							
							 
							
							... 
							
							
							
							Move mod.rs to ../move_generator.rs. This is the new style.
Move the contents of move_generator::move_generator to the top of move_generator. 
							
						 
						
							2024-01-27 14:25:38 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								9d25414b97 
								
							 
						 
						
							
							
								
								[board] Directly use PlacedPiece in the position! macro  
							
							 
							
							... 
							
							
							
							Avoids having to also import the piece! macro to use position!. 
							
						 
						
							2024-01-27 13:04:22 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e8d7f15a7f 
								
							 
						 
						
							
							
								
								[board] Simplify the piece placement strategy logic  
							
							 
							
							... 
							
							
							
							Check whether the strategy is PreserveExisting before checking if the piece is
already placed. 
							
						 
						
							2024-01-27 13:03:18 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								bea6dd67c8 
								
							 
						 
						
							
							
								
								[board] Remove the position reference from move generator structs  
							
							 
							
							... 
							
							
							
							Simplifies the lifetime calculations, and makes it possible to cache a Moves
object on Position. 
							
						 
						
							2024-01-27 13:02:43 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d3ab477795 
								
							 
						 
						
							
							
								
								[board] Remove a stray space in move_generator/mod.rs  
							
							 
							
							
							
						 
						
							2024-01-26 12:59:23 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6292421b1c 
								
							 
						 
						
							
							
								
								[board] Clean up imports in fen.rs  
							
							 
							
							
							
						 
						
							2024-01-26 12:59:05 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								f08a4c66a1 
								
							 
						 
						
							
							
								
								[core] Use TryFromCharError in TryFrom<char> for Color  
							
							 
							
							
							
						 
						
							2024-01-26 12:58:51 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								54c94a93aa 
								
							 
						 
						
							
							
								
								[board] Rewrite the pawn move generator  
							
							 
							
							... 
							
							
							
							I wrote it before I made the MoveGeneratorInternal trait.
Found a few bugs in there too. 
							
						 
						
							2024-01-26 08:38:01 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								a73355c769 
								
							 
						 
						
							
							
								
								[explorer] Track result of command with a CommandResult type, and overall state with a State type  
							
							 
							
							
							
						 
						
							2024-01-24 17:16:33 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d27c455ce4 
								
							 
						 
						
							
							
								
								Merge branch 'many-crates'  
							
							 
							
							
							
						 
						
							2024-01-24 17:14:30 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								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