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;
event newBest(A guess, double score);
void updateBest(A guess, double score) {
if (best.put(guess, score))
newBest(guess, score);
}
double submit(A guess) {
if (guess == null) ret minusInfinity();
double score = callF(submit, guess);
updateBest(guess, score);
ret score;
}
}