svoid runStrategyForever(AIStrategy strategy, O... _) {
runStrategyForever(strategy.best, strategy, _);
}
static void runStrategyForever(Best best, Steppable strategy, O... _) {
optPar Double optimumValue;
double score = best.score();
long sameScoreSince = 0;
while licensed {
if (strategy.step()) ret;
++sameScoreSince;
if (best.score() != score) {
print("Improvement after " + n2(sameScoreSince, "round") + ": " + best);
sameScoreSince = 0;
score = best.score();
if (optimumValue != null && eq(score, optimumValue)) ret;
}
}
}