mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-19 16:46:30 +08:00
Simplified discovered check connected_moves()
No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user