Permalink
Browse files

Use cut-off checks in qsearch as killer moves

Killers should not be captures, but checks are not
and are produced also in qsearch.

Use this information, will be useful for move ordering.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
  • Loading branch information...
1 parent e7bad26 commit e86468cc631ede99530998a6ad269e328f25f808 @mcostalba committed Nov 10, 2008
Showing with 12 additions and 0 deletions.
  1. +12 −0 src/search.cpp
View
@@ -1469,6 +1469,18 @@ namespace {
// Update transposition table
TT.store(pos, value_to_tt(bestValue, ply), depth, MOVE_NONE, VALUE_TYPE_EXACT);
+ // Update killers only for good check moves
+ Move m = ss[ply].currentMove;
+ if (alpha >= beta && ok_to_history(pos, m)) // Only non capture moves are considered
+ {
+ // Wrong to update history when depth is <= 0
+
+ if (m != ss[ply].killer1)
+ {
+ ss[ply].killer2 = ss[ply].killer1;
+ ss[ply].killer1 = m;
+ }
+ }
return bestValue;
}

0 comments on commit e86468c

Please sign in to comment.