X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmovepick.cpp;h=86eb98aa64401d4c32f994d22e67e79c907c5795;hb=eb07775583c39893bc6eb65a40b5f62a7799deee;hp=883135d491798a292be297af44d66fbd0948d522;hpb=5c2fbcd09b43bd6867780a3ace303ffb1e09d763;p=stockfish diff --git a/src/movepick.cpp b/src/movepick.cpp index 883135d4..86eb98aa 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -31,9 +31,6 @@ namespace { QSEARCH_TT, QCAPTURE_INIT, QCAPTURE, QCHECK_INIT, QCHECK }; - // Helper filter used with select() - const auto Any = [](){ return true; }; - // partial_insertion_sort() sorts moves in descending order up to and including // a given limit. The order of moves smaller than the limit is left unspecified. void partial_insertion_sort(ExtMove* begin, ExtMove* end, int limit) { @@ -79,9 +76,9 @@ MovePicker::MovePicker(const Position& p, Move ttm, Depth d, const ButterflyHist assert(d <= DEPTH_ZERO); stage = pos.checkers() ? EVASION_TT : QSEARCH_TT; - ttMove = ttm - && pos.pseudo_legal(ttm) - && (depth > DEPTH_QS_RECAPTURES || to_sq(ttm) == recaptureSquare) ? ttm : MOVE_NONE; + ttMove = ttm + && (depth > DEPTH_QS_RECAPTURES || to_sq(ttm) == recaptureSquare) + && pos.pseudo_legal(ttm) ? ttm : MOVE_NONE; stage += (ttMove == MOVE_NONE); } @@ -94,8 +91,8 @@ MovePicker::MovePicker(const Position& p, Move ttm, Value th, const CapturePiece stage = PROBCUT_TT; ttMove = ttm - && pos.pseudo_legal(ttm) && pos.capture(ttm) + && pos.pseudo_legal(ttm) && pos.see_ge(ttm, threshold) ? ttm : MOVE_NONE; stage += (ttMove == MOVE_NONE); } @@ -117,7 +114,8 @@ void MovePicker::score() { m.value = (*mainHistory)[pos.side_to_move()][from_to(m)] + (*continuationHistory[0])[pos.moved_piece(m)][to_sq(m)] + (*continuationHistory[1])[pos.moved_piece(m)][to_sq(m)] - + (*continuationHistory[3])[pos.moved_piece(m)][to_sq(m)]; + + (*continuationHistory[3])[pos.moved_piece(m)][to_sq(m)] + + (*continuationHistory[5])[pos.moved_piece(m)][to_sq(m)] / 2; else // Type == EVASIONS { @@ -225,7 +223,7 @@ top: /* fallthrough */ case BAD_CAPTURE: - return select(Any); + return select([](){ return true; }); case EVASION_INIT: cur = moves; @@ -236,7 +234,7 @@ top: /* fallthrough */ case EVASION: - return select(Any); + return select([](){ return true; }); case PROBCUT: return select([&](){ return pos.see_ge(move, threshold); }); @@ -261,7 +259,7 @@ top: /* fallthrough */ case QCHECK: - return select(Any); + return select([](){ return true; }); } assert(false);