[board] Implement Position::occupied_squares and Position::empty_squares
These methods return bitboards marking the occupied and empty squares, made by ORing the two pieces_per_color bitboards.
This commit is contained in:
parent
2296be23cc
commit
1a986e4c27
1 changed files with 13 additions and 2 deletions
|
@ -93,6 +93,17 @@ impl Position {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Return a BitBoard representing the set of squares containing a piece.
|
||||||
|
pub(crate) fn occupied_squares(&self) -> BitBoard {
|
||||||
|
self.pieces_per_color[Color::White as usize] | self.pieces_per_color[Color::Black as usize]
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Return a BitBoard representing the set of squares containing a piece. This set is the inverse of `occupied_squares`.
|
||||||
|
pub(crate) fn empty_squares(&self) -> BitBoard {
|
||||||
|
!(self.pieces_per_color[Color::White as usize]
|
||||||
|
| self.pieces_per_color[Color::Black as usize])
|
||||||
|
}
|
||||||
|
|
||||||
pub(crate) fn bitboard_for_piece(&self, piece: Piece) -> &BitBoard {
|
pub(crate) fn bitboard_for_piece(&self, piece: Piece) -> &BitBoard {
|
||||||
&self.pieces_per_type[piece.color as usize][piece.shape as usize]
|
&self.pieces_per_type[piece.color as usize][piece.shape as usize]
|
||||||
}
|
}
|
||||||
|
@ -101,11 +112,11 @@ impl Position {
|
||||||
&mut self.pieces_per_type[piece.color as usize][piece.shape as usize]
|
&mut self.pieces_per_type[piece.color as usize][piece.shape as usize]
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(self) fn bitboard_for_color(&self, color: Color) -> &BitBoard {
|
pub(crate) fn bitboard_for_color(&self, color: Color) -> &BitBoard {
|
||||||
&self.pieces_per_color[color as usize]
|
&self.pieces_per_color[color as usize]
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(self) fn bitboard_for_color_mut(&mut self, color: Color) -> &mut BitBoard {
|
fn bitboard_for_color_mut(&mut self, color: Color) -> &mut BitBoard {
|
||||||
&mut self.pieces_per_color[color as usize]
|
&mut self.pieces_per_color[color as usize]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue