Bruno BELANYI
042f5dbc4d
Rename 'board::direction{s,}'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
585c127381
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 22:20:39 +01:00
Bruno BELANYI
d51d72377e
Add 'static_assert' macro
2024-04-01 22:20:39 +01:00
Bruno BELANYI
643b688384
Add 'Bitboard::{LIGHT,DARK}_SQUARES
2024-04-01 22:20:39 +01:00
Bruno BELANYI
659e3f1c9a
Make use of 'Bitboard::is_empty'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
f66b0276d8
Add 'Bitboard::is_empty'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
9ef600c1bb
Add 'Direction::slide_{square,board}'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
dc974ec0e9
Add 'Bitboard::{ANTI_,}DIAGONAL'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
251c10cbc7
Add 'Direction::move_square'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
1ab024fce8
Add 'Direction::iter_{rook,bishop,royalty,knight}'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
924689ec02
Add 'Direction::move_board'
...
Encapsulates the way to move a piece on a board, avoiding the need to
mask and shift by hand.
2024-04-01 22:20:39 +01:00
Bruno BELANYI
b840bfc570
Add 'board::Direction' enum
2024-04-01 22:20:39 +01:00
Bruno BELANYI
c177d13b75
Use 'Square::index' in 'Square::{file,rank}_index'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
281c79556a
Add 'Square::index'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
8261b0c06b
Add 'Bitboard::count'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
7a7e7f3665
Add 'Rank::{up,down}'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
2b4797ec47
Add 'File::{left,right}'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
6501466d3e
Add 'Square' constructor from 'File', 'Rank'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
c3c3684150
Don't return 'Bitboard' from 'Square::{file,rank}'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
ef15da41ea
Add 'File' enum
2024-04-01 22:20:39 +01:00
Bruno BELANYI
54d7f0d69f
Add 'Rank' enum
2024-04-01 22:20:39 +01:00
Bruno BELANYI
47b1854669
Introduce 'Bitboard::ALL'
2024-04-01 22:20:39 +01:00
Bruno BELANYI
a0fcf3285c
Add bitboard iteration
...
Introduce 'BitboardIterator', use it to implement 'IntoIterator' for
'Bitboard'.
2024-04-01 22:20:39 +01:00
Bruno BELANYI
f4a92c0681
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.
2024-04-01 22:20:39 +01:00
Bruno BELANYI
015485a4c5
Add 'Bitboard' and 'Square' definitions
2024-04-01 22:20:39 +01:00
Bruno BELANYI
44eb79f35b
Move binary crate into 'bin' folder
2024-04-01 22:20:39 +01:00
Bruno BELANYI
3677040e03
Bootstrap project
2024-04-01 22:20:39 +01:00