- // connected_moves() tests whether two moves are 'connected' in the sense
- // that the first move somehow made the second move possible (for instance
- // if the moving piece is the same in both moves). The first move is assumed
- // to be the move that was made to reach the current position, while the
- // second move is assumed to be a move from the current position.
-
- bool connected_moves(const Position& pos, Move m1, Move m2) {
-
- Square f1, t1, f2, t2;
- Piece p1, p2;
- Square ksq;
-
- assert(is_ok(m1));
- assert(is_ok(m2));
-
- // Case 1: The moving piece is the same in both moves
- f2 = from_sq(m2);
- t1 = to_sq(m1);
- if (f2 == t1)
- return true;
+ // prevents_move() tests whether a move (first) is able to defend against an
+ // opponent's move (second). In this case will not be pruned. Normally the
+ // second move is the threat move (the best move returned from a null search
+ // that fails low).