ソースを参照

LibChess: Fix the ability to counter check with another check

fixes #3187,#3171
Peter Elliott 5 年 前
コミット
e80d0abb2c
1 ファイル変更1 行追加5 行削除
  1. 1 5
      Libraries/LibChess/Chess.cpp

+ 1 - 5
Libraries/LibChess/Chess.cpp

@@ -334,11 +334,7 @@ bool Board::in_check(Colour colour) const
 
     bool check = false;
     Square::for_each([&](const Square& square) {
-        if (is_legal({ square, king_square }, opposing_colour(colour))) {
-            check = true;
-            return IterationDecision::Break;
-        } else if (get_piece(square) == Piece(opposing_colour(colour), Type::King) && is_legal_no_check({ square, king_square }, opposing_colour(colour))) {
-            // The King is a special case, because it would be in check if it put the opposing king in check.
+        if (is_legal_no_check({ square, king_square }, opposing_colour(colour))) {
             check = true;
             return IterationDecision::Break;
         }