Skip to content

Commit

Permalink
Don't prune TT move in qsearch even if SEE < 0
Browse files Browse the repository at this point in the history
Even if SEE is negative there is always a good possibility
that TT move is a cut move anyway. For instance a lot of
BXN exchanges that have negative SEE can very easily be
good exchanges.

A nice side effect is a bit reduced frequency of
see_sign() calls.

After 643 games at 1+0
Mod vs Orig +174 =327 -142 52.49%  337.5/643 +17 ELO

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
  • Loading branch information
mcostalba committed Oct 22, 2009
1 parent cf4df03 commit a72c552
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/search.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1596,6 +1596,7 @@ namespace {

// Don't search captures and checks with negative SEE values
if ( !isCheck
&& move != ttMove
&& !move_is_promotion(move)
&& pos.see_sign(move) < 0)
continue;
Expand All @@ -1622,7 +1623,7 @@ namespace {

// All legal moves have been searched. A special case: If we're in check
// and no legal moves were found, it is checkmate.
if (pos.is_check() && moveCount == 0) // Mate!
if (!moveCount && pos.is_check()) // Mate!
return value_mated_in(ply);

assert(bestValue > -VALUE_INFINITE && bestValue < VALUE_INFINITE);
Expand Down

0 comments on commit a72c552

Please sign in to comment.