Commit graph

100 commits

Author SHA1 Message Date
1a7763e1f4 Add 'ChessBoard::at'
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-30 12:38:45 +02:00
87258c1084 Add 'ChessBoard::checkers' 2022-07-30 12:38:45 +02:00
168d9e69ab Test for opponent being in check during validation 2022-07-30 12:38:45 +02:00
f13d44b8e3 Add 'Bitboard::has_more_than_one' 2022-07-30 12:38:45 +02:00
cb3b1ee745 Check kings' position in 'ChessBoard::is_valid' 2022-07-30 12:38:45 +02:00
934597d63d Add 'Bitboard::try_into_square' 2022-07-30 12:38:45 +02:00
024a41fa18 Use unchecked conversion in 'BitboardIterator 2022-07-30 12:38:45 +02:00
eefa707c07 Silence useless clippy warnings
Those warnings are either explicitly accounted for in the code, or make
the code look worse if fixed.
2022-07-30 12:38:45 +02:00
2e410ba104 Make use of assignment operators for 'Bitboard' 2022-07-30 12:38:45 +02:00
a6e8ac06b6 Add dummy 'magic::moves' module for build script
Since I'm am doing something quite *weird*, by writing a build script
that makes use of the module I am generating code for, I need to ensure
that it compiles both without the generated code, and with it.

So this dummy implementation of the module ensures that the code will
keep compiling in both cases, and panics if any of the functions that
depend on generated code are called during the build script execution.
2022-07-30 12:38:45 +02:00
99129e453c Make use of 'ChessBoard::default' in tests 2022-07-30 12:38:45 +02:00
9cddda7478 Implement 'Default' for 'ChessBoard' 2022-07-30 12:38:45 +02:00
b5bb613b5e Test 'ChessBoard::{do,undo}_move' machinery 2022-07-30 12:38:45 +02:00
0cefb05017 Add FEN board parsing 2022-07-30 12:38:45 +02:00
fb0e289fa0 Add 'ChessBoard::is_valid' 2022-07-30 12:38:45 +02:00
384f361da2 Add 'ChessBoard' 2022-07-30 12:38:45 +02:00
f633c6e224 Mark'Error' as non-exhaustive
This simplifies semantic versionning constraints.
2022-07-30 12:38:45 +02:00
08ff8db0ac Add 'Error::InvalidPosition' variant 2022-07-30 12:38:45 +02:00
76577718d8 Add FEN castling rights parsing 2022-07-30 12:38:45 +02:00
7df442e03c Add FEN piece type parsing 2022-07-30 12:38:45 +02:00
dba4d94e35 Add FEN en-passant target square parsing 2022-07-28 20:28:45 +02:00
6f0e2f732b Add FEN side to move parsing 2022-07-28 20:28:45 +02:00
611e12c033 Add 'Color::third_rank' 2022-07-28 20:28:45 +02:00
dde5b69f81 Add 'FromFen' trait 2022-07-28 20:28:45 +02:00
7e23cb8f77 Introduce 'Error' enum 2022-07-28 20:28:45 +02:00
8102b08cf0 Add 'CastleRights::with_{king,queen}_side' 2022-07-28 20:28:45 +02:00
e7e5927902 Add 'Move' 2022-07-28 20:28:45 +02:00
80e3ace8fc Add '*Assign' operators to 'Bitboard' 2022-07-27 23:36:54 +02:00
02d48fe526 Remove all useless 'allow(unused)' 2022-07-27 23:36:54 +02:00
915244b238 Add 'rerun-if-changed' directives to build script 2022-07-27 23:36:54 +02:00
d2c61a81b5 Make use of generated move tables 2022-07-27 23:36:54 +02:00
bd43535192 Move naive move generation into sub-module 2022-07-27 23:36:53 +02:00
8289204e4b Generate magic tables with build script 2022-07-27 23:36:53 +02:00
d2eda07036 Make all modules at least 'pub(crate)' 2022-07-27 23:36:53 +02:00
0222ec4c2d Add 'Color::iter' 2022-07-27 23:36:53 +02:00
d97e7d646e Move 'Magic' into 'seer::movegen::magic' 2022-07-27 23:36:53 +02:00
7dbe48ad23 Add '# Safety' section to 'unsafe fn' doc 2022-07-25 16:42:46 +02:00
2eb7e4c8ef Allow some clippy warnings 2022-07-25 16:42:46 +02:00
1a0aa5fddb Remove superfluous 'format!' call 2022-07-25 16:42:46 +02:00
a04b1f3a42 Add magic bitboard generation 2022-07-25 16:42:46 +02:00
3f00c6d1fc Make 'Magic' fields 'pub(crate)' 2022-07-25 16:42:46 +02:00
5bee69c38e Add 'flake check' stage to CI
Now that the 'pre-commit' is in another stage, add this one back in.
2022-07-25 16:42:46 +02:00
ae1c3322d5 Remove 'pre-commit' check from flake
Since trying to run it results into a failure due to 'clippy' trying to
fetch the network inside the build sandbox, remove it from the 'checks'
for now, but do keep it around for its 'shellHook'.
2022-07-25 16:41:27 +02:00
c8d7c17711 Fix pre-commit check in CI
Now that we have actual dependencies, we need to run 'pre-commit run'
outside of the build sandbox.
2022-07-25 16:36:44 +02:00
7a120cee83 Add 'random' dependency 2022-07-24 16:34:12 +02:00
acbbfc7c8b Add magic mask generation 2022-07-24 16:34:12 +02:00
6b0563b1bd Add 'Magic' type 2022-07-24 16:34:12 +02:00
847e18dac1 Add naive pawn move generation 2022-07-24 16:34:12 +02:00
dbe3539a66 Add naive rook move generation 2022-07-22 10:37:12 +02:00
5101d8c285 Add naive bishop move generation 2022-07-22 10:37:12 +02:00