Skip to content

Commit

Permalink
Retire EasyMoveMargin
Browse files Browse the repository at this point in the history
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 <mcostalba@gmail.com>
  • Loading branch information
mcostalba committed Oct 3, 2012
1 parent 561eb34 commit bd7a0d4
Showing 1 changed file with 2 additions and 6 deletions.
8 changes: 2 additions & 6 deletions src/search.cpp
Expand Up @@ -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;

Expand Down Expand Up @@ -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<NonPV>(pos, ss+1, rBeta - 1, rBeta, (depth - 3) * ONE_PLY);
Expand Down Expand Up @@ -1494,7 +1490,7 @@ namespace {
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
Expand Down

0 comments on commit bd7a0d4

Please sign in to comment.