summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
725c504)
Fix the logic in search_pv and sp_search_pv
An additional issue to consider is that a castle move
is not a capture but destination square is not empty.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
movesSearched[moveCount++] = ss[ply].currentMove = move;
if (moveIsCapture)
movesSearched[moveCount++] = ss[ply].currentMove = move;
if (moveIsCapture)
- ss[ply].currentMoveCaptureValue = pos.midgame_value_of_piece_on(move_to(move));
- else if (move_is_ep(move))
- ss[ply].currentMoveCaptureValue = PawnValueMidgame;
+ ss[ply].currentMoveCaptureValue =
+ move_is_ep(move)? PawnValueMidgame : pos.midgame_value_of_piece_on(move_to(move));
else
ss[ply].currentMoveCaptureValue = Value(0);
else
ss[ply].currentMoveCaptureValue = Value(0);
assert(move_is_ok(move));
assert(move_is_ok(move));
- ss[sp->ply].currentMoveCaptureValue = move_is_ep(move)?
- PawnValueMidgame : pos.midgame_value_of_piece_on(move_to(move));
+ if (moveIsCapture)
+ ss[sp->ply].currentMoveCaptureValue =
+ move_is_ep(move)? PawnValueMidgame : pos.midgame_value_of_piece_on(move_to(move));
+ else
+ ss[sp->ply].currentMoveCaptureValue = Value(0);
lock_grab(&(sp->lock));
int moveCount = ++sp->moves;
lock_grab(&(sp->lock));
int moveCount = ++sp->moves;