From: Marco Costalba Date: Sat, 16 Jul 2011 08:36:03 +0000 (+0100) Subject: Simplified discovered check connected_moves() X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=4894231ff71b4132ce77cac7e01dc708bc93f426;hp=36bb57a47e137f075fe546887be01fdd0d4670e3 Simplified discovered check connected_moves() No functional change. Signed-off-by: Marco Costalba --- diff --git a/src/search.cpp b/src/search.cpp index 829e1bbe..8b5f3b2b 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1549,6 +1549,7 @@ split_point_start: // At split points actual search starts from here Square f1, t1, f2, t2; Piece p1, p2; + Square ksq; assert(m1 && move_is_ok(m1)); assert(m2 && move_is_ok(m2)); @@ -1577,16 +1578,13 @@ split_point_start: // At split points actual search starts from here return true; // Case 5: Discovered check, checking piece is the piece moved in m1 + ksq = pos.king_square(pos.side_to_move()); if ( piece_is_slider(p1) - && bit_is_set(squares_between(t1, pos.king_square(pos.side_to_move())), f2) - && !bit_is_set(squares_between(t1, pos.king_square(pos.side_to_move())), t2)) + && bit_is_set(squares_between(t1, ksq), f2)) { - // discovered_check_candidates() works also if the Position's side to - // move is the opposite of the checking piece. - Color them = opposite_color(pos.side_to_move()); - Bitboard dcCandidates = pos.discovered_check_candidates(them); - - if (bit_is_set(dcCandidates, f2)) + Bitboard occ = pos.occupied_squares(); + clear_bit(&occ, f2); + if (bit_is_set(pos.attacks_from(p1, t1, occ), ksq)) return true; } return false;