X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmovepick.cpp;h=a71d307eacac5f668c8557c47ebd01e166fb4839;hp=51d85192a7c4df8b9c0cfdd0ea0c3adfb7b9ff13;hb=f35e52f030af837ed8a89eecd67a6f746ee2e897;hpb=8dd6875240e05dbcc1fb6467ffb11ad360aa474c diff --git a/src/movepick.cpp b/src/movepick.cpp index 51d85192..a71d307e 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -25,7 +25,7 @@ namespace { enum Stages { - MAIN_SEARCH, CAPTURES_INIT, GOOD_CAPTURES, KILLERS, COUNTERMOVE, QUIET_INIT, QUIET, BAD_CAPTURES, + MAIN_SEARCH, CAPTURES_INIT, GOOD_CAPTURES, KILLER0, KILLER1, COUNTERMOVE, QUIET_INIT, QUIET, BAD_CAPTURES, EVASION, EVASIONS_INIT, ALL_EVASIONS, PROBCUT, PROBCUT_CAPTURES_INIT, PROBCUT_CAPTURES, QSEARCH, QCAPTURES_INIT, QCAPTURES, QCHECKS, QSEARCH_RECAPTURES, QRECAPTURES @@ -127,7 +127,7 @@ void MovePicker::score() { for (auto& m : *this) if (Type == CAPTURES) m.value = PieceValue[MG][pos.piece_on(to_sq(m))] - + Value((*captureHistory)[pos.moved_piece(m)][to_sq(m)][type_of(pos.piece_on(to_sq(m)))]); + + (*captureHistory)[pos.moved_piece(m)][to_sq(m)][type_of(pos.piece_on(to_sq(m)))]; else if (Type == QUIETS) m.value = (*mainHistory)[pos.side_to_move()][from_to(m)] @@ -185,24 +185,20 @@ Move MovePicker::next_move(bool skipQuiets) { *endBadCaptures++ = move; } } - ++stage; - move = killers[0]; // First killer move - if ( move != MOVE_NONE - && move != ttMove - && pos.pseudo_legal(move) - && !pos.capture(move)) - return move; /* fallthrough */ - case KILLERS: - ++stage; - move = killers[1]; // Second killer move - if ( move != MOVE_NONE - && move != ttMove - && pos.pseudo_legal(move) - && !pos.capture(move)) - return move; + case KILLER0: + case KILLER1: + do + { + move = killers[++stage - KILLER1]; + if ( move != MOVE_NONE + && move != ttMove + && pos.pseudo_legal(move) + && !pos.capture(move)) + return move; + } while (stage <= KILLER1); /* fallthrough */ case COUNTERMOVE: