Commit graph

14 commits

Author SHA1 Message Date
758a3d95fc [board] Reorganize bitboard and position modules and export some symbols from the crate
Move position.rs to the position module and create a mod.rs.
Do the same for bitboard.rs in the bitboard modules.
Export Color, Piece, Position, and Square and use crate::Thing directly instead of referring to the symbol in the nested modules.
2023-12-26 11:25:27 -07:00
80b78a8fef [board] Remove Default derivation from BitBoard 2023-12-26 11:19:13 -07:00
48f393680c [board] Rename BitBoard::pieces() → occupied_squares() 2023-12-26 09:15:53 -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
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
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
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
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
d776bd18e2 [board] Move bitboard lib to "board" 2023-12-20 11:45:55 -08:00
Renamed from bitboard/src/bitboard.rs (Browse further)