[position] Make the checking_piece! macro handle specifying the path to the piece constructor
This commit is contained in:
parent
032fabe072
commit
f09376f5dc
1 changed files with 6 additions and 6 deletions
|
@ -265,19 +265,19 @@ impl Position {
|
||||||
};
|
};
|
||||||
|
|
||||||
macro_rules! checking_piece {
|
macro_rules! checking_piece {
|
||||||
($moves_bb_fn:path, $piece_fn:path) => {{
|
($moves_bb_fn:path, $piece_fn:ident) => {{
|
||||||
let moves_from_opposing_square = $moves_bb_fn(king_square);
|
let moves_from_opposing_square = $moves_bb_fn(king_square);
|
||||||
let piece = $piece_fn(opponent);
|
let piece = Piece::$piece_fn(opponent);
|
||||||
let opposing_pieces = self.pieces.bitboard_for_piece(&piece);
|
let opposing_pieces = self.pieces.bitboard_for_piece(&piece);
|
||||||
|
|
||||||
moves_from_opposing_square & opposing_pieces
|
moves_from_opposing_square & opposing_pieces
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|
||||||
let checking_knights = checking_piece!(BitBoard::knight_moves, Piece::knight);
|
let checking_knights = checking_piece!(BitBoard::knight_moves, knight);
|
||||||
let checking_bishops = checking_piece!(BitBoard::bishop_moves, Piece::bishop);
|
let checking_bishops = checking_piece!(BitBoard::bishop_moves, bishop);
|
||||||
let checking_rooks = checking_piece!(BitBoard::rook_moves, Piece::rook);
|
let checking_rooks = checking_piece!(BitBoard::rook_moves, rook);
|
||||||
let checking_queens = checking_piece!(BitBoard::queen_moves, Piece::queen);
|
let checking_queens = checking_piece!(BitBoard::queen_moves, queen);
|
||||||
|
|
||||||
CheckingPieces::new(
|
CheckingPieces::new(
|
||||||
checking_pawns,
|
checking_pawns,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue