diff --git a/src/movepick.cpp b/src/movepick.cpp index a604fe14..e350bda8 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -239,7 +239,7 @@ void MovePicker::generate_next() { case KILLERS_S1: cur = killers; - end = cur + 3; + end = cur + 3 - (killers[2].move == killers[0].move || killers[2].move == killers[1].move); return; case QUIETS_1_S1: diff --git a/src/search.cpp b/src/search.cpp index 40561544..22183367 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1092,8 +1092,11 @@ split_point_start: // At split points actual search starts from here // Increase history value of the cut-off move Value bonus = Value(int(depth) * int(depth)); Hist.update(pos.piece_moved(bestMove), to_sq(bestMove), bonus); - Square prevSq = to_sq((ss-1)->currentMove); - Refutation.update(pos.piece_on(prevSq), prevSq, bestMove); + if (is_ok((ss-1)->currentMove)) + { + Square prevSq = to_sq((ss-1)->currentMove); + Refutation.update(pos.piece_on(prevSq), prevSq, bestMove); + } // Decrease history of all the other played non-capture moves for (int i = 0; i < playedMoveCount - 1; i++)