bishopAttacks function
Gets squares attacked or defended by a bishop on Square, given occupied
squares.
Implementation
SquareSet bishopAttacks(Square square, SquareSet occupied) {
final bit = SquareSet.fromSquare(square);
return _hyperbola(bit, _diagRange[square], occupied) ^
_hyperbola(bit, _antiDiagRange[square], occupied);
}