attacks function
Gets squares attacked or defended by a piece
on square
, given
occupied
squares.
Implementation
SquareSet attacks(Piece piece, Square square, SquareSet occupied) {
switch (piece.role) {
case Role.pawn:
return pawnAttacks(piece.color, square);
case Role.knight:
return knightAttacks(square);
case Role.bishop:
return bishopAttacks(square, occupied);
case Role.rook:
return rookAttacks(square, occupied);
case Role.queen:
return queenAttacks(square, occupied);
case Role.king:
return kingAttacks(square);
}
}