From fa11eca9904d806ac1a95c7d92b7cac3977d92ab Mon Sep 17 00:00:00 2001 From: Fabian Fichter Date: Tue, 29 Mar 2022 19:40:55 +0200 Subject: [PATCH] Consider king checks Affects bench due to pseudo-legal but illegal checks by kings. bench: 6180480 Closes #451. --- src/position.cpp | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/src/position.cpp b/src/position.cpp index 64ad96a..96b4dfb 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -536,7 +536,6 @@ void Position::set_check_info(StateInfo* si) const { if (AttackRiderTypes[pt] & NON_SLIDING_RIDERS) si->nonSlidingRiders |= pieces(pt); } - si->checkSquares[KING] = 0; si->shak = si->checkersBB & (byTypeBB[KNIGHT] | byTypeBB[ROOK] | byTypeBB[BERS]); si->bikjang = var->bikjangRule && ksq != SQ_NONE ? bool(attacks_bb(sideToMove, ROOK, ksq, pieces()) & pieces(sideToMove, KING)) : false; si->legalCapture = NO_VALUE; @@ -1250,7 +1249,7 @@ bool Position::gives_check(Move m) const { return false; // Is there a direct check? - if (type_of(m) != PROMOTION && type_of(m) != PIECE_PROMOTION && type_of(m) != PIECE_DEMOTION) + if (type_of(m) != PROMOTION && type_of(m) != PIECE_PROMOTION && type_of(m) != PIECE_DEMOTION && type_of(m) != CASTLING) { PieceType pt = type_of(moved_piece(m)); if (AttackRiderTypes[pt] & (HOPPING_RIDERS | ASYMMETRICAL_RIDERS)) -- 1.7.0.4