From: Marco Costalba Date: Tue, 16 Dec 2008 16:09:19 +0000 (+0100) Subject: search_pv: an enpassant move is a capture X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=b09cbaebb9fad91320e723f92930b5ec6fd88e9f;hp=725c504a5fcb4cd516f2ce0d1da29058548d070c;ds=sidebyside search_pv: an enpassant move is a capture 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 --- diff --git a/src/search.cpp b/src/search.cpp index 72bf6e81..8e6181cc 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1003,9 +1003,8 @@ namespace { 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); @@ -1691,8 +1690,11 @@ namespace { 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;