//Maximum move horizon of 50 moves
int mtg = limits.movestogo ? std::min(limits.movestogo, 50) : 50;
- // Adjust moveOverhead if there are tiny increments
- moveOverhead = std::max(10, std::min<int>(limits.inc[us] / 2, moveOverhead));
-
// Make sure timeLeft is > 0 since we may use it as a divisor
TimePoint timeLeft = std::max(TimePoint(1),
limits.time[us] + limits.inc[us] * (mtg - 1) - moveOverhead * (2 + mtg));
// game time for the current move, so also cap to 20% of available game time.
if (limits.movestogo == 0)
{
- opt_scale = std::min(0.007 + std::pow(ply + 3.0, 0.5) / 250.0,
+ opt_scale = std::min(0.008 + std::pow(ply + 3.0, 0.5) / 250.0,
0.2 * limits.time[us] / double(timeLeft));
- max_scale = 4 + std::pow(ply + 3, 0.3);
+ max_scale = 4 + std::min(36, ply) / 12.0;
}
// x moves in y seconds (+ z increment)