From e8d7f15a7f99e2a241c675a02ee430fc78a0cb1d Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sat, 27 Jan 2024 13:03:18 -0800 Subject: [PATCH] [board] Simplify the piece placement strategy logic Check whether the strategy is PreserveExisting before checking if the piece is already placed. --- board/src/position/piece_sets.rs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/board/src/position/piece_sets.rs b/board/src/position/piece_sets.rs index 9382156..0ebbd90 100644 --- a/board/src/position/piece_sets.rs +++ b/board/src/position/piece_sets.rs @@ -87,13 +87,10 @@ impl PieceBitBoards { let color = piece.color(); let square = piece.square(); - if self.by_color.bitboard(color).is_set(piece.square()) { - match strategy { - PlacePieceStrategy::Replace => todo!(), - PlacePieceStrategy::PreserveExisting => { - return Err(PlacePieceError::ExisitingPiece) - } - } + if strategy == PlacePieceStrategy::PreserveExisting + && self.by_color.bitboard(color).is_set(piece.square()) + { + return Err(PlacePieceError::ExisitingPiece); } self.by_color_and_shape.set_square(square, piece.piece());