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.

And here’s the results ordered by high score rather than player, and with the half or so disqualified scores removed, with mine bolded (and gem right under me). I didn’t care about the formatting, but notice our positions when ranked by score 🙂
Player Score Record as Bottom Record as Top
———————————————————————–
5700 2197 20- 1- 0 18- 3- 0
xxxx 2191 20- 1- 0 19- 2- 0
xxxx 2187 20- 1- 0 19- 2- 0
xxxx 2184 20- 1- 0 18- 3- 0
xxxx 1935 15- 6- 0 18- 3- 0
xxxx 1920 15- 6- 0 15- 6- 0
xxxx 1752 13- 8- 0 11- 9- 1
xxxx 1682 12- 9- 0 14- 7- 0
xxxx 1575 10- 10- 1 13- 8- 0
xxxx 1369 10- 11- 0 7- 12- 2
xxxx 1342 9- 11- 1 7- 14- 0
xxxx 1304 7- 14- 0 7- 14- 0
xxxx 1300 12- 8- 1 4- 17- 0
xxxx 1271 11- 10- 0 1- 19- 1
xxxx 1210 11- 10- 0 3- 17- 1
xxxx 1194 9- 12- 0 2- 19- 0
xxxx 1180 10- 11- 0 5- 16- 0
xxxx 1167 3- 17- 1 7- 13- 1
xxxx 1152 7- 14- 0 5- 16- 0
xxxx 1148 8- 12- 1 4- 17- 0
xxxx 1061 11- 9- 1 1- 20- 0
xxxx 943 4- 17- 0 1- 20- 0
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED
xxxx 0 DISQUALIFIED