sclass AIStrategy_RandomWithVariation extends AIStrategy { F0 random; F1 vary; *() {} *(IF1 judge, IF0 random, IF1 vary) { setJudge(judge); this.random = toF0(random); this.vary = toF1(vary); } public bool step() { go(); true; } void go { 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; } }