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