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>
// Update transposition table
TT.store(pos, value_to_tt(bestValue, ply), depth, MOVE_NONE, VALUE_TYPE_EXACT);
// 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;
+ }
+ }