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; } } }