- // Calculate thinking time for hypothetical "moves to go"-value
- int hypMyTime = limits.time[us]
- + limits.inc[us] * (hypMTG - 1)
- - moveOverhead * (2 + std::min(hypMTG, 40));
-
- hypMyTime = std::max(hypMyTime, 0);
-
- int t1 = minThinkingTime + remaining<OptimumTime>(hypMyTime, hypMTG, ply, slowMover);
- int t2 = minThinkingTime + remaining<MaxTime >(hypMyTime, hypMTG, ply, slowMover);
+ optScale = std::min(0.008 + std::pow(ply + 3.0, 0.5) / 250.0,
+ 0.2 * limits.time[us] / double(timeLeft));
+ maxScale = std::min(7.0, 4.0 + ply / 12.0);
+ }