mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-24 02:57:11 +08:00
Simplify Chess 960 castling
a little cleanup, and small speedup (about 0.3%) for Chess 960. Verified with perft on a large set of chess960 positions. Closes https://github.com/official-stockfish/Stockfish/pull/3317 No functional change
This commit is contained in:
@@ -533,11 +533,9 @@ bool Position::legal(Move m) const {
|
||||
if (attackers_to(s) & pieces(~us))
|
||||
return false;
|
||||
|
||||
// In case of Chess960, verify that when moving the castling rook we do
|
||||
// not discover some hidden checker.
|
||||
// In case of Chess960, verify if the Rook blocks some checks
|
||||
// For instance an enemy queen in SQ_A1 when castling rook is in SQ_B1.
|
||||
return !chess960
|
||||
|| !(attacks_bb<ROOK>(to, pieces() ^ to_sq(m)) & pieces(~us, ROOK, QUEEN));
|
||||
return !chess960 || !(blockers_for_king(us) & to_sq(m));
|
||||
}
|
||||
|
||||
// If the moving piece is a king, check whether the destination square is
|
||||
|
||||
Reference in New Issue
Block a user