Commit graph

25 commits

Author SHA1 Message Date
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 97ca224608 Add GDB pretty-printers 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