From: Fabian Fichter Date: Tue, 29 Mar 2022 17:40:55 +0000 (+0200) Subject: Consider king checks X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=fa11eca9904d806ac1a95c7d92b7cac3977d92ab;p=fairystockfish.git Consider king checks Affects bench due to pseudo-legal but illegal checks by kings. bench: 6180480 Closes #451. --- 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))