mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-06 10:53:50 +08:00
simplified gives check castling
tested verifying perft and bench is unchanged on a larger set of epds for both standard and FRC chess. Passed non-regression STC: https://tests.stockfishchess.org/tests/live_elo/648587be65ffe077ca123d78 LLR: 2.95 (-2.94,2.94) <-1.75,0.25> Total: 153632 W: 41015 L: 40928 D: 71689 Ptnml(0-2): 377, 16077, 43816, 16174, 372 closes https://github.com/official-stockfish/Stockfish/pull/4628 No functional change
This commit is contained in:
committed by
Joost VandeVondele
parent
9cd563cb54
commit
95ce443aaa
1
AUTHORS
1
AUTHORS
@@ -179,6 +179,7 @@ Raminder Singh
|
||||
renouve
|
||||
Reuven Peleg (R-Peleg)
|
||||
Richard Lloyd (Richard-Lloyd)
|
||||
rn5f107s2
|
||||
Rodrigo Exterckötter Tjäder
|
||||
Rodrigo Roim (roim)
|
||||
Ronald de Man (syzygy1, syzygy)
|
||||
|
||||
@@ -638,9 +638,9 @@ bool Position::gives_check(Move m) const {
|
||||
return true;
|
||||
|
||||
// Is there a discovered check?
|
||||
if ( (blockers_for_king(~sideToMove) & from)
|
||||
&& !aligned(from, to, square<KING>(~sideToMove)))
|
||||
return true;
|
||||
if (blockers_for_king(~sideToMove) & from)
|
||||
return !aligned(from, to, square<KING>(~sideToMove))
|
||||
|| type_of(m) == CASTLING;
|
||||
|
||||
switch (type_of(m))
|
||||
{
|
||||
@@ -665,11 +665,9 @@ bool Position::gives_check(Move m) const {
|
||||
default: //CASTLING
|
||||
{
|
||||
// Castling is encoded as 'king captures the rook'
|
||||
Square ksq = square<KING>(~sideToMove);
|
||||
Square rto = relative_square(sideToMove, to > from ? SQ_F1 : SQ_D1);
|
||||
|
||||
return (attacks_bb<ROOK>(rto) & ksq)
|
||||
&& (attacks_bb<ROOK>(rto, pieces() ^ from ^ to) & ksq);
|
||||
return check_squares(ROOK) & rto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user