sclass AIStrategy_RandomWithVariation { F0 random; F1 vary; F1 submit; // returns score new Best best; int round; void go { A guess = guess(); best.put(guess, callF(submit, guess)); } A guess() { if (odd(round++) && best.has()) ret callF(vary, best!); else ret callF(random); } }