Sunday, July 29, 2007


Title: CheckerBoard
Author: Martin Fierz
License: Freeware

It has been a while since I had an entry on an abstract strategy game. With the recent announcement by the Chinook team that checkers is a draw with perfect play, I thought it might be a good time to mention my favorite checkers program: CheckerBoard.

I have to say that I am not much of a checkers player myself. Many years ago, more than I care to admit, I wrote a checkers program in turbo pascal. It was your basic alpha-beta min-max program. It only looked six or ten moves ahead, I forget exactly, but it kicked my butt. Well, I did not know about the endgame databases. Sometimes, games would get down to two kings for the program and one for me. Looking only ten moves ahead it could not see how to win the game, and would move almost randomly. So, from time-to-time I could pull out these 2-to-1 draws.

Enough on my failings. CheckerBoard is a simple, free checkers program with every feature you could want. It has many levels play, ranging from instant to 30 minutes of thought per move. It displays it current search depth and position evaluation. On the 1 second thought per move, it usually thinks about 10 or more moves ahead and beats me soundly. The interface is intuitive and clean. You can take back dumb moves. And, it can analyze games to tell you which moves were dumb.

CheckerBoard comes with an opening book which can be extended. Actually, you can modify it to force CheckerBoard down a particular opening line if desired. At the other end of the game, the endgame database is critical to a good checkers program. CheckerBoard can build a 6-piece endgame database. I highly suggest you do this. The 8-piece database can be downloaded.

One of the interesting advanced features is the concept of an "engine". It turns out that CheckerBoard is just the interface. The brains that decide which move to make are in the engine. These are .dll files that CheckerBoard calls when it is the computer's turn to move. It comes with 4 different engines written by different people. You can choose which one to play against. The weakest engine, SimpleCheckers, usually beats me on the 1second/move for what it is worth, but does not know about endgame databases. You can even play engine vs. engine to see which one is the best. The API for writing an engine is available if you want to write your own engine. The source code for Simple Checkers is available as a starting point.

The only missing feature, and I do not know if this a flaw in CheckerBoard or the Engines, is that it does not learn. Even simple Samuel-style learning can protect an engine against repeatedly falling into the same cooks, not that I found any. That aside, this is a great program. I do not understand why anyone would pay money for another checkers program unless it was Chinook itself.

Now that American checkers has been solved, you might want to try international checkers. Two free programs are Dragon Draughts and Dam.


Post a Comment

<< Home