Kalah

Back mid-quarter, we had to create the AI for a Kalah playing program. Jacobson then had them play against each other and ranked the results on the course website. Here’s how he did it, copied from his document.
Each player’s score is the sum, across all games played, of beans in the player’s pot at each game’s end. The higher your score, the better you did.
Each (non-disqualified) player played two games, one as top player and one as bottom player, against every other (non-disqualified) player. Players were disqualified for taking longer than 5 seconds to make a move, making an illegal move, throwing unchecked exceptions at run-time or compile-time errors. We did not disqualify a player whose program wrote to the screen, though technically we could have done so.