Commit graph

51 commits

Author SHA1 Message Date
0a1e1dc39d Add FEN piece type parsing 2022-07-27 23:40:55 +02:00
5d956fa08f Add FEN en-passant target square parsing 2022-07-27 23:40:38 +02:00
03b8ba4236 Add FEN side to move parsing 2022-07-27 23:40:15 +02:00
f272e49305 Add 'Color::third_rank' 2022-07-27 23:38:51 +02:00
c5eb965cab Add 'FromFen' trait 2022-07-27 23:36:54 +02:00
f483492b17 Add 'CastleRights::with_{king,queen}_side' 2022-07-27 23:36:54 +02:00
fbe824528e Add 'Move' 2022-07-27 23:36:54 +02:00
80e3ace8fc Add '*Assign' operators to 'Bitboard' 2022-07-27 23:36:54 +02:00
0222ec4c2d Add 'Color::iter' 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
e3ea602bb9 Remove spurious links in 'Square' documentation 2022-07-22 10:37:12 +02:00
8fdbdd1f61 Remove spurious links in 'Bitboard' documentation 2022-07-22 10:36:59 +02:00
fa68be533a Add 'Bitboard::iter_powerset' 2022-07-22 10:36:59 +02:00
2b9b637ab5 Add 'Piece' enum 2022-07-22 10:36:59 +02:00
337b8f61f4 Add 'NUM_VARIANTS' constant to all 'board' enums 2022-07-22 10:36:59 +02:00
2c140d0481 Consistently use 'Self' type in 'impl' blocks 2022-07-22 10:36:59 +02:00
3f4c23321f Fix typo in 'board::Color' documentation 2022-07-22 10:36:59 +02:00
500e6fd22f Add 'Color::slide_board_with_blockers' 2022-07-22 10:36:59 +02:00
b3222276ab Improve 'board::BitboardIterator'
All checks were successful
continuous-integration/drone/push Build is passing
* Accurate 'size_hint'.
* Exact size.
* Fused iterator (keeps returning 'None' after returning 'None' once).
2022-07-18 18:21:16 +02:00
7c8dce8f49 Add 'Color::{forward,backward}_direction' 2022-07-18 17:37:24 +02:00
aa3b464bb8 Add 'CastleRights::unmoved_rooks'
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-18 13:50:23 +02:00
c5949fb01e Add 'CastleRights::without_{king,queen}_side' 2022-07-18 13:38:52 +02:00
562182d26b Add 'CastleRights::has_{king,queen}_side' 2022-07-18 13:28:23 +02:00
63c5d2dc34 Add 'CastleRights' enum 2022-07-18 13:27:03 +02:00
e0c667d090 Add 'Color' enum 2022-07-18 13:22:04 +02:00
3a6c4113fc Rename 'board::direction{s,}' 2022-07-18 13:11:37 +02:00
66e5109157 Statically assert zero-cost invariants
All checks were successful
continuous-integration/drone/push Build is passing
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.
2022-07-18 11:05:41 +02:00
74d2a2cf6a Add 'Bitboard::{LIGHT,DARK}_SQUARES
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-18 10:01:23 +02:00
f1f6198e5f Make use of 'Bitboard::is_empty' 2022-07-18 10:01:23 +02:00
057b383f8c Add 'Bitboard::is_empty' 2022-07-18 00:33:24 +02:00
0dde0d5dbd Add 'Direction::slide_{square,board}' 2022-07-18 00:33:24 +02:00
896f615bba Add 'Bitboard::{ANTI_,}DIAGONAL' 2022-07-18 00:33:24 +02:00
8e92bc2370 Add 'Direction::move_square' 2022-07-18 00:33:24 +02:00
52d3974063 Add 'Direction::iter_{rook,bishop,royalty,knight}' 2022-07-18 00:33:24 +02:00
8b27d302d7 Add 'Direction::move_board'
Encapsulates the way to move a piece on a board, avoiding the need to
mask and shift by hand.
2022-07-18 00:33:24 +02:00
4e98678ccd Add 'board::Direction' enum 2022-07-18 00:33:24 +02:00
e8b5c9f73c Use 'Square::index' in 'Square::{file,rank}_index' 2022-07-18 00:33:24 +02:00
17b8ee5eb3 Add 'Square::index' 2022-07-18 00:33:24 +02:00
61e7a4e8d1 Add 'Bitboard::count' 2022-07-18 00:33:24 +02:00
db0a7e9f60 Add 'Rank::{up,down}' 2022-07-17 21:26:03 +02:00
63228c2d9e Add 'File::{left,right}' 2022-07-17 21:26:03 +02:00
87473908cf Add 'Square' constructor from 'File', 'Rank' 2022-07-17 21:26:03 +02:00
77b15edc36 Don't return 'Bitboard' from 'Square::{file,rank}' 2022-07-17 21:26:03 +02:00
bb04368f41 Add 'File' enum 2022-07-16 14:41:07 +02:00
4eff49f367 Add 'Rank' enum 2022-07-16 14:41:07 +02:00
41903be143 Introduce 'Bitboard::ALL' 2022-07-16 14:41:07 +02:00
3c157efe84 Add bitboard iteration
Introduce 'BitboardIterator', use it to implement 'IntoIterator' for
'Bitboard'.
2022-07-16 14:41:07 +02:00
4bc597439e Move 'board::bitboard' into folder module
I will be adding a 'BitboardIterator' type, and it makes more sense to
use a folder for this module at this point.
2022-07-16 14:41:07 +02:00