From 03d6a86900044c8b4a512c7e53464fd0a67866fc Mon Sep 17 00:00:00 2001 From: Tord Romstad Date: Wed, 2 Sep 2009 09:58:15 +0200 Subject: [PATCH] Bug fix for discovered checks in connected_moves(). Because of a hard-to-spot single-character bug in connected_moves(), the discovered check code had no effect whatsoever. The condition in the if (...) statement at the beginning of the code would always return false. Thanks to Edsel Apostol for pointing out this bug! --- src/search.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/search.cpp b/src/search.cpp index 806a7fc4..31aea466 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -2185,7 +2185,7 @@ namespace { // Case 5: Discovered check, checking piece is the piece moved in m1 if ( piece_is_slider(pos.piece_on(t1)) && bit_is_set(squares_between(t1, pos.king_square(pos.side_to_move())), f2) - && !bit_is_set(squares_between(t2, pos.king_square(pos.side_to_move())), t2)) + && !bit_is_set(squares_between(t1, pos.king_square(pos.side_to_move())), t2)) { Bitboard occ = pos.occupied_squares(); Color us = pos.side_to_move(); -- 2.39.2