Commit graph

75 commits

Author SHA1 Message Date
a26c532015 Add 'Move' GDB pretty-printing 2024-04-01 13:59:41 +01:00
e1a1532872 Add 'Piece' GDB pretty-printing 2024-04-01 13:59:41 +01:00
1a71854589 Add 'Rank' GDB pretty-printing 2024-04-01 13:59:41 +01:00
ca68ccf92c Add 'File' GDB pretty-printing 2024-04-01 13:59:41 +01:00
a7ed24c752 Add 'Color' GDB pretty-printing 2024-04-01 13:59:41 +01:00
ddc8ecc474 Add 'Move' 2024-04-01 12:21:33 +01:00
856c3a873d Deny warnings in 'clippy' pre-commit hook 2024-04-01 12:21:33 +01:00
19d0e1bd34 Add 'Bitboard::has_more_than_one' 2024-04-01 12:21:33 +01:00
be5e9722de Add 'Color::third_rank' 2024-04-01 12:21:33 +01:00
80ea35babe Add 'CastleRights::with_{king,queen}_side' 2024-04-01 12:21:33 +01:00
54d2e78954 Add '*Assign' operators to 'Bitboard' 2024-04-01 12:21:33 +01:00
4de41a5544 Remove all useless 'allow(unused)' 2024-04-01 12:21:33 +01:00
be506747f8 Tighten item visibilities 2024-04-01 12:21:33 +01:00
6feca16b61 Add 'BitboardIterator::new' 2024-04-01 12:21:33 +01:00
9cf5fc3852 Add bitboard-based move generation 2024-04-01 12:21:33 +01:00
8fe444c59a Expose magic bitboard generation to parent module 2024-04-01 12:21:33 +01:00
6cc0380b02 Add 'MagicMoves' 2024-04-01 12:21:33 +01:00
fd3da78224 Make 'Magic' 'pub(crate)' 2024-04-01 12:21:33 +01:00
01966d1015 Add missing derives to 'Magic' 2024-04-01 12:21:33 +01:00
2254830ddc Move 'Magic' to 'wizardry' submodule 2024-04-01 12:21:33 +01:00
a4fd4f5cc4 Move naive move generation into sub-module 2024-04-01 12:21:33 +01:00
9601a5657a Make all modules at least 'pub(crate)' 2024-04-01 12:21:33 +01:00
5b56fcfcda Add 'Color::iter' 2024-04-01 12:21:33 +01:00
d268db38c1 Add magic bitboard generation 2024-04-01 12:21:33 +01:00
3410ba518e Make 'Magic' fields 'pub(crate)' 2024-04-01 12:21:33 +01:00
f1cdec2b5e Add magic mask generation 2024-04-01 12:21:33 +01:00
55d9780156 Add 'Magic' type 2024-04-01 12:21:33 +01:00
3eb140b757 Add naive pawn move generation 2024-04-01 12:21:33 +01:00
b1a460a580 Add naive rook move generation 2024-04-01 12:21:33 +01:00
f7fc30227a Add naive bishop move generation 2024-04-01 12:21:33 +01:00
0c4b011386 Add naive knight move generation 2024-04-01 12:21:33 +01:00
064846a4fd Add naive king move generation 2024-04-01 12:21:33 +01:00
7ccca5a593 Remove spurious links in 'Square' documentation 2024-04-01 12:21:33 +01:00
a4952376a1 Remove spurious links in 'Bitboard' documentation 2024-04-01 12:21:33 +01:00
34b9c18ca5 Add 'Bitboard::iter_powerset' 2024-04-01 12:21:33 +01:00
1ea4cd0ea4 Add 'Piece' enum 2024-04-01 12:21:33 +01:00
42126e1c88 Add 'NUM_VARIANTS' constant to all 'board' enums 2024-04-01 12:21:33 +01:00
3f93417092 Consistently use 'Self' type in 'impl' blocks 2024-04-01 12:21:33 +01:00
568c369683 Fix typo in 'board::Color' documentation 2024-04-01 12:21:33 +01:00
f405246127 Add 'Color::slide_board_with_blockers' 2024-04-01 12:21:33 +01:00
6e871dbfe6 Improve 'board::BitboardIterator'
* Accurate 'size_hint'.
* Exact size.
* Fused iterator (keeps returning 'None' after returning 'None' once).
2024-04-01 12:21:33 +01:00
c571b53840 Add 'Color::{forward,backward}_direction' 2024-04-01 12:21:33 +01:00
04ef282815 Add 'CastleRights::unmoved_rooks' 2024-04-01 12:21:33 +01:00
96b9e0f6d7 Add 'CastleRights::without_{king,queen}_side' 2024-04-01 12:21:33 +01:00
d8e003ef94 Add 'CastleRights::has_{king,queen}_side' 2024-04-01 12:21:33 +01:00
688b624dd1 Add 'CastleRights' enum 2024-04-01 12:21:33 +01:00
3553428bb9 Add 'Color' enum 2024-04-01 12:21:33 +01:00
ffaad7b7d4 Rename 'board::direction{s,}' 2024-04-01 12:21:33 +01:00
a6f4e7e686 Statically assert zero-cost invariants
Since some or all of those invariants will come in handy to ensure we
use as little memory as possible, to maximize the speed of the move
generation later on.
2024-04-01 12:21:33 +01:00
accbbef64e Add 'static_assert' macro 2024-04-01 12:21:33 +01:00