X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmovepick.cpp;h=3e90750343919224a273a4742a70f93f9d42b9c8;hp=e248b729361d8e1bac8e8d63d3fb2dc7b8d5ba64;hb=f2f3a06a1acfa14b3054bfd73d6c3966c326a7cc;hpb=ec6aab01366ba1d2de27084d3cc7415a31aa5a24 diff --git a/src/movepick.cpp b/src/movepick.cpp index e248b729..3e907503 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -26,7 +26,7 @@ namespace { enum Stages { - MAIN_SEARCH, GOOD_CAPTURES, KILLERS, GOOD_QUIETS, BAD_QUIETS, BAD_CAPTURES, + MAIN_SEARCH, GOOD_CAPTURES, KILLERS, QUIET, BAD_CAPTURES, EVASION, ALL_EVASIONS, QSEARCH_WITH_CHECKS, QCAPTURES_1, CHECKS, QSEARCH_WITHOUT_CHECKS, QCAPTURES_2, @@ -199,17 +199,15 @@ void MovePicker::generate_next_stage() { endMoves = cur + 2 + (countermove != killers[0] && countermove != killers[1]); break; - case GOOD_QUIETS: - endQuiets = endMoves = generate(pos, moves); + case QUIET: + endMoves = generate(pos, moves); score(); - endMoves = std::partition(cur, endMoves, [](const ExtMove& m) { return m.value > VALUE_ZERO; }); - insertion_sort(cur, endMoves); - break; - - case BAD_QUIETS: - cur = endMoves; - endMoves = endQuiets; - if (depth >= 3 * ONE_PLY) + if (depth < 3 * ONE_PLY) + { + ExtMove* goodQuiet = std::partition(cur, endMoves, [](const ExtMove& m) + { return m.value > VALUE_ZERO; }); + insertion_sort(cur, goodQuiet); + } else insertion_sort(cur, endMoves); break; @@ -282,7 +280,7 @@ Move MovePicker::next_move() { return move; break; - case GOOD_QUIETS: case BAD_QUIETS: + case QUIET: move = *cur++; if ( move != ttMove && move != killers[0]