0c73caaf60
Add FEN castling rights parsing
2022-07-27 23:41:08 +02:00
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'
...
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'
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
...
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
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