[BitBoard] Add castlingMoves

This commit is contained in:
2022-12-22 18:36:36 +01:00
parent db20e49f35
commit e18146e00c
2 changed files with 12 additions and 0 deletions

View File

@@ -53,6 +53,17 @@ BitBoard BitBoard::kingAttacks(const BitBoard kings) {
return result; return result;
} }
BitBoard BitBoard::castlingMoves(BitBoard kings, BitBoard rooks, BitBoard empty) {
kings |= (kings.east() | kings.west()) & empty;
kings |= (kings.east() | kings.west()) & empty;
kings |= kings.west() & empty;
rooks |= (rooks.east() | rooks.west()) & empty;
rooks |= (rooks.east() | rooks.west()) & empty;
rooks |= (rooks.east()) & empty;
return kings & rooks & CastlingSquares;
}
BitBoard BitBoard::bishopAttacks(BitBoard bishops, BitBoard empty) { BitBoard BitBoard::bishopAttacks(BitBoard bishops, BitBoard empty) {
BitBoard result = 0; BitBoard result = 0;
BitBoard diag1 = bishops; BitBoard diag1 = bishops;

View File

@@ -108,6 +108,7 @@ public:
static BitBoard bishopAttacks(BitBoard pos, BitBoard empty); static BitBoard bishopAttacks(BitBoard pos, BitBoard empty);
static BitBoard kingAttacks(BitBoard kings); static BitBoard kingAttacks(BitBoard kings);
static BitBoard castlingMoves(BitBoard kings, BitBoard rooks, BitBoard empty);
static BitBoard pawnNorthAttacks(BitBoard pawns, BitBoard targets); static BitBoard pawnNorthAttacks(BitBoard pawns, BitBoard targets);
static BitBoard pawnSouthAttacks(BitBoard pawns, BitBoard targets); static BitBoard pawnSouthAttacks(BitBoard pawns, BitBoard targets);