[board] Mailbox-related changes
This commit is contained in:
parent
ee51a13870
commit
634f9e02f4
1 changed files with 5 additions and 4 deletions
|
@ -3,10 +3,11 @@
|
|||
mod bitboards;
|
||||
mod mailbox;
|
||||
|
||||
pub(crate) use mailbox::Mailbox;
|
||||
|
||||
use bitboards::{ByColor, ByColorAndShape};
|
||||
use chessfriend_bitboard::BitBoard;
|
||||
use chessfriend_core::{Color, Piece, PlacedPiece, Shape, Square};
|
||||
use mailbox::Mailbox;
|
||||
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
pub enum PlacePieceStrategy {
|
||||
|
@ -52,7 +53,7 @@ impl PieceSet {
|
|||
for s in Shape::into_iter() {
|
||||
let bitboard = pieces[c as usize][s as usize];
|
||||
for square in bitboard.occupied_squares() {
|
||||
mailbox.set(square, Piece::new(c, s));
|
||||
mailbox.set(Piece::new(c, s), square);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -114,7 +115,7 @@ impl PieceSet {
|
|||
let piece: Piece = piece.into();
|
||||
self.by_color_and_shape.set_square(square, piece);
|
||||
self.by_color.set_square(square, color);
|
||||
self.mailbox.set(square, piece);
|
||||
self.mailbox.set(piece, square);
|
||||
|
||||
Ok(PlacedPiece::new(piece, square))
|
||||
}
|
||||
|
@ -123,7 +124,7 @@ impl PieceSet {
|
|||
if let Some(piece) = self.mailbox.get(square) {
|
||||
self.by_color_and_shape.clear_square(square, piece.into());
|
||||
self.by_color.clear_square(square, piece.color());
|
||||
self.mailbox.clear(square);
|
||||
self.mailbox.remove(square);
|
||||
|
||||
Some(PlacedPiece::new(piece, square))
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue