isSquareAttacked method

bool isSquareAttacked(
  1. int sq,
  2. int byColor
)

Is sq attacked by any piece of byColor, given current occupancy?

Implementation

bool isSquareAttacked(int sq, int byColor) {
  // Pawns: a square is attacked by byColor pawns from the opposite pawn's
  // capture pattern.
  if ((pawnAttacks[byColor ^ 1][sq] & pieces[byColor][pawn]) != 0) return true;
  if ((knightAttacks[sq] & pieces[byColor][knight]) != 0) return true;
  if ((kingAttacks[sq] & pieces[byColor][king]) != 0) return true;
  final bishopsQueens = pieces[byColor][bishop] | pieces[byColor][queen];
  if ((bishopAttacks(sq, occAll) & bishopsQueens) != 0) return true;
  final rooksQueens = pieces[byColor][rook] | pieces[byColor][queen];
  if ((rookAttacks(sq, occAll) & rooksQueens) != 0) return true;
  return false;
}