abstract sclass AIStrategy implements Steppable { // user must set F1 submit; // scoring function *() {} *(F1 *submit) {} selfType setJudge(IF1 judge) { submit = toF1(judge); this; } long 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; } }