mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 17:16:33 +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;
|
Square f1, t1, f2, t2;
|
||||||
Piece p1, p2;
|
Piece p1, p2;
|
||||||
|
Square ksq;
|
||||||
|
|
||||||
assert(m1 && move_is_ok(m1));
|
assert(m1 && move_is_ok(m1));
|
||||||
assert(m2 && move_is_ok(m2));
|
assert(m2 && move_is_ok(m2));
|
||||||
@@ -1577,16 +1578,13 @@ split_point_start: // At split points actual search starts from here
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
// Case 5: Discovered check, checking piece is the piece moved in m1
|
// 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)
|
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, ksq), f2))
|
||||||
&& !bit_is_set(squares_between(t1, pos.king_square(pos.side_to_move())), t2))
|
|
||||||
{
|
{
|
||||||
// discovered_check_candidates() works also if the Position's side to
|
Bitboard occ = pos.occupied_squares();
|
||||||
// move is the opposite of the checking piece.
|
clear_bit(&occ, f2);
|
||||||
Color them = opposite_color(pos.side_to_move());
|
if (bit_is_set(pos.attacks_from(p1, t1, occ), ksq))
|
||||||
Bitboard dcCandidates = pos.discovered_check_candidates(them);
|
|
||||||
|
|
||||||
if (bit_is_set(dcCandidates, f2))
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user