sclass AIStrategy_RandomWithVariation implements Steppable {
F0 random;
F1 vary;
F1 submit; // returns score
new Best best;
int round;
public bool step() { go(); false; }
void go {
A guess = guess();
if (guess != null)
best.put(guess, callF(submit, guess));
}
A guess() {
A a = null;
if (odd(round++) && vary != null && best.has())
a = callF(vary, best!);
if (a == null)
a = callF(random);
ret a;
}
void updateBest(A guess, double score) {
best.put(guess, score);
}
}