static void runStrategyWhileImprovement(Best best, Steppable strategy) { double score = best.score(); int plateauLength = 1000; long sameScoreSince = 0; while licensed { if (strategy.step()) ret; if (best.score() != score) { print("Improvement after " + n2(sameScoreSince, "round") + ": " + best); sameScoreSince = 0; score = best.score(); } else if (++sameScoreSince >= plateauLength) ret; } }