From: Marco Costalba Date: Wed, 3 Oct 2012 08:34:42 +0000 (+0200) Subject: Retire EasyMoveMargin X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=bd7a0d4ce4945b3bde229fce9e3c886152a48d79 Retire EasyMoveMargin Use a value related to PawnValue instead. This is a different patch from previous one because could affect game play and skill levels, although in a mostly unmeasurable way. Indeed thresold has been raised so easy move is a bit harder to trigger and skill level is a bit more prone to blunders. No functional change. Signed-off-by: Marco Costalba --- diff --git a/src/search.cpp b/src/search.cpp index e44324f7..31edcc2f 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -88,10 +88,6 @@ namespace { return (Depth) Reductions[PvNode][std::min(int(d) / ONE_PLY, 63)][std::min(mn, 63)]; } - // Easy move margin. An easy move candidate must be at least this much better - // than the second best move. - const Value EasyMoveMargin = Value(0x150); - // This is the minimum interval in msec between two check_time() calls const int TimerResolution = 5; @@ -450,7 +446,7 @@ namespace { && ( (bestMoveNeverChanged && pos.captured_piece_type()) || Time::now() - SearchTime > (TimeMgr.available_time() * 40) / 100)) { - Value rBeta = bestValue - EasyMoveMargin; + Value rBeta = bestValue - 2 * PawnValueMg; (ss+1)->excludedMove = RootMoves[0].pv[0]; (ss+1)->skipNullMove = true; Value v = search(pos, ss+1, rBeta - 1, rBeta, (depth - 3) * ONE_PLY); @@ -1494,7 +1490,7 @@ split_point_start: // At split points actual search starts from here int s = RootMoves[i].score; // Don't allow crazy blunders even at very low skills - if (i > 0 && RootMoves[i-1].score > s + EasyMoveMargin) + if (i > 0 && RootMoves[i-1].score > s + 2 * PawnValueMg) break; // This is our magic formula