1575c83d31 
								
							 
						 
						
							
							
								
								[board] Rename PiecePlacementError::PieceExistsOnSquare → ExistsOnSquare  
							
							 
							
							
							
						 
						
							2023-12-26 11:20:01 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								80b78a8fef 
								
							 
						 
						
							
							
								
								[board] Remove Default derivation from BitBoard  
							
							 
							
							
							
						 
						
							2023-12-26 11:19:13 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								32c562e405 
								
							 
						 
						
							
							
								
								[board] Implement Color::other() that swaps the color for the other  
							
							 
							
							
							
						 
						
							2023-12-26 11:13:44 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								fac98735e3 
								
							 
						 
						
							
							
								
								[board] Implement a Pieces iterator  
							
							 
							
							... 
							
							
							
							This type iterates the pieces in a Position using the BitScanner struct to iterate all the occupied squares of the position's bitboards. 
							
						 
						
							2023-12-26 09:19:38 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								18d9a845e6 
								
							 
						 
						
							
							
								
								[board] Implement a custom Debug for Position  
							
							 
							
							... 
							
							
							
							Newlines help a lot! 
							
						 
						
							2023-12-26 09:17:57 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e23c20486e 
								
							 
						 
						
							
							
								
								[board] Build error and warning fixes  
							
							 
							
							... 
							
							
							
							- Remove unused import from bit_scanner.rs
- Rename PieceShape → Shape in the Position tests 
							
						 
						
							2023-12-26 09:16:55 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								48f393680c 
								
							 
						 
						
							
							
								
								[board] Rename BitBoard::pieces() → occupied_squares()  
							
							 
							
							
							
						 
						
							2023-12-26 09:15:53 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e0f1e1f6ff 
								
							 
						 
						
							
							
								
								[board] Derive a bunch of traits for Color, Shape, Piece, and Square  
							
							 
							
							
							
						 
						
							2023-12-26 09:15:24 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								1da827a3bb 
								
							 
						 
						
							
							
								
								[board] Implement a BitScanner on u64  
							
							 
							
							... 
							
							
							
							This struct implements an Iterator that returns the positions of the 1 bits in the u64.
BitBoard takes this iterator and maps it into Squares in the pieces() method.
This is laying the groundwork for an iterator over the pieces in a Position. 👀  
							
						 
						
							2023-12-23 23:04:18 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								a2f88f0fde 
								
							 
						 
						
							
							
								
								[board] Give piece Color and shape enums integer values  
							
							 
							
							... 
							
							
							
							Rename PieceShape → Shape
Remove color and piece modules from position.rs 
							
						 
						
							2023-12-23 20:20:19 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e4859105b7 
								
							 
						 
						
							
							
								
								[board] Implement directional shifts by 1 on BitBoard  
							
							 
							
							... 
							
							
							
							Add some positive tests for these shifts. Negative tests, and boundary tests are still to come.
Implement at custom fmt::Debug for BitBoard so it prints binary. 
							
						 
						
							2023-12-23 16:09:58 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								366f15ca12 
								
							 
						 
						
							
							
								
								[board] Implement placing a piece in a mutable position  
							
							 
							
							
							
						 
						
							2023-12-23 09:31:47 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								153e21b693 
								
							 
						 
						
							
							
								
								[board] Implement finding a neighbor of a square  
							
							 
							
							... 
							
							
							
							Use the Direction enum to calculate the neighbor of a square with bounds checking.
Remove the unused rank_index() and file_index methods.
Add Square::from_rank_file and Square::from_index_unsafe to support tests.
Unify the Square*OutOfBounds error types 
							
						 
						
							2023-12-23 09:30:45 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								341d8211ad 
								
							 
						 
						
							
							
								
								[board] Fix algebraic square parsing  
							
							 
							
							... 
							
							
							
							I got very confused about which one is the rank and which one is the file. 🙃  
							
						 
						
							2023-12-23 09:27:56 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								9bcd0b2148 
								
							 
						 
						
							
							
								
								[board] Add neighbor and piece modules  
							
							 
							
							... 
							
							
							
							Add a Direction enum in the neighbor module
Add Color and PieceShape enums, and a Piece struct to the piece module 
							
						 
						
							2023-12-23 09:18:07 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								70d8034e4e 
								
							 
						 
						
							
							
								
								[board] Inline BitAnd, BitOr, and Not BitBoard methods; remove an unused import  
							
							 
							
							
							
						 
						
							2023-12-23 09:17:07 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								0838f4fd01 
								
							 
						 
						
							
							
								
								[board] Add a Not impl for BitBoard  
							
							 
							
							... 
							
							
							
							This trait implements bitwise NOT 
							
						 
						
							2023-12-23 09:16:32 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								42d231435e 
								
							 
						 
						
							
							
								
								Add some notes  
							
							 
							
							
							
						 
						
							2023-12-22 08:51:18 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6af64171a2 
								
							 
						 
						
							
							
								
								[board] Implement BitAnd and BitOr on BitBoard and make it's u64 private  
							
							 
							
							
							
						 
						
							2023-12-22 08:50:03 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								aa7e901241 
								
							 
						 
						
							
							
								
								[board] Add remove_piece_at() method to BitBoard  
							
							 
							
							
							
						 
						
							2023-12-21 08:30:48 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								ed9a919db6 
								
							 
						 
						
							
							
								
								[board] Add a "count leading zeros" implementation for ARM machines  
							
							 
							
							... 
							
							
							
							Call the `clz` instruction on the bitboard via `asm!`. 
							
						 
						
							2023-12-21 08:17:17 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								4eb734d3eb 
								
							 
						 
						
							
							
								
								[board] Some basic bit operations for bitboards  
							
							 
							
							
							
						 
						
							2023-12-21 08:17:06 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								0a42adf1fa 
								
							 
						 
						
							
							
								
								[board] Re-do the Square implementation  
							
							 
							
							... 
							
							
							
							- Rank and file are 0-indexed values
- Add an index property, a 1D index into an array
- Add from_index() and from_algebraic_string() 
							
						 
						
							2023-12-21 08:15:51 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d776bd18e2 
								
							 
						 
						
							
							
								
								[board] Move bitboard lib to "board"  
							
							 
							
							
							
						 
						
							2023-12-20 11:45:55 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								ab55a7994c 
								
							 
						 
						
							
							
								
								[bitboard] Implement a Square type; fix all the build issues after adding a mod line to lib.rs  
							
							 
							
							
							
						 
						
							2023-12-20 11:45:12 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d080ddc735 
								
							 
						 
						
							
							
								
								Ignore the target/ directory  
							
							 
							
							
							
						 
						
							2023-12-19 11:13:41 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								567cb8d787 
								
							 
						 
						
							
							
								
								[bitboard] Commit the lock file  
							
							 
							
							
							
						 
						
							2023-12-19 11:13:20 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								ebed5c05ed 
								
							 
						 
						
							
							
								
								[bitboard] Add a BitBoard and a Position struct  
							
							 
							
							
							
						 
						
							2023-12-19 11:13:06 -08:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								8fd01e4f11 
								
							 
						 
						
							
							
								
								Add bitboard Rust library  
							
							 
							
							
							
						 
						
							2023-12-19 10:32:26 -08:00