[board] Implement ply and full move counters on Position
Pipe these numbers through the Builders
This commit is contained in:
parent
829d9af52c
commit
dbbf2d4c46
3 changed files with 63 additions and 2 deletions
|
@ -16,6 +16,8 @@ pub struct Builder {
|
|||
flags: Flags,
|
||||
pieces: BTreeMap<Square, Piece>,
|
||||
kings: [Square; 2],
|
||||
ply_counter: u16,
|
||||
move_number: u16,
|
||||
}
|
||||
|
||||
impl Builder {
|
||||
|
@ -28,6 +30,16 @@ impl Builder {
|
|||
self
|
||||
}
|
||||
|
||||
pub fn ply_counter(&mut self, num: u16) -> &mut Self {
|
||||
self.ply_counter = num;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn move_number(&mut self, num: u16) -> &mut Self {
|
||||
self.move_number = num;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn place_piece(&mut self, piece: PlacedPiece) -> &mut Self {
|
||||
let square = piece.square();
|
||||
|
||||
|
@ -50,7 +62,14 @@ impl Builder {
|
|||
.filter(Self::is_piece_placement_valid),
|
||||
);
|
||||
|
||||
Position::new(self.player_to_move, self.flags, pieces, None)
|
||||
Position::new(
|
||||
self.player_to_move,
|
||||
self.flags,
|
||||
pieces,
|
||||
None,
|
||||
self.ply_counter,
|
||||
self.move_number,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -82,6 +101,8 @@ impl Default for Builder {
|
|||
flags: Flags::default(),
|
||||
pieces: pieces,
|
||||
kings: [white_king_square, black_king_square],
|
||||
ply_counter: 0,
|
||||
move_number: 1,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue