abstract sclass AIStrategy implements Steppable { // user must set F1 submit; // scoring function *() {} *(F1 *submit) {} this setJudge(IF1 judge) { submit = toF1(judge); } int round; new Best best; bool verbose; void updateBest(A guess, double score) { best.put(guess, score); } double submit(A guess) { if (guess == null) ret minusInfinity(); double score = callF(submit, guess); best.put(guess, score); ret score; } }