Tuesday, September 20, 2005

Why a chess player programmed checkers

I'm a chess player. I learned the rules when I was five years old, joined a club when I was about 10 or 11 years old, and have been playing ever since. So why did I write a checkers program? I once tried to write a chess program when I was 17 or 18 - I failed miserably. After learning how to program a bit more seriously, I still didn't feel ready to write a chess program, and tried my hand at Connect Four instead. That's a game with very simple rules, and I learned all the basics of strategy game programming like alpha-beta pruning and hashtables there. Later on, when I felt a bit more familiar with the concepts of strategy game programming, I again wanted to write a chess program, but still didn't feel confident enough. So I wrote a checkers program although I had never played the game myself at all. The only reason that I chose checkers was that it was somewhere between Connect Four and chess in the complexity of its rules, and the fact that I read about the Tinsley-Chinook matches in time magazine. It may seem strange that a weak player can write a strong program, but in chess the same pattern has often been seen: the programmers of many strong programs like Shredder, Chess Genius, Chess Tiger etc are all quite weak players themselves.

Thursday, September 15, 2005

2 million moves!

My book generator just passed the 2 million move mark. For me this was a psychologically important moment, although as a physicist I am usually immune against that kind of innumeracy. The reason this one number means something to me is an email I received from Murray Cash (programmer of Nemesis) over 3 years ago. He had just completed a match between Nemesis and Cake++ 1.4 (the details are still available on the Nemesis benchmarks page). His conclusion then was that Cake was a decent engine, but that it would need a book of 2 million moves or so. It took me and my computer farm quite some time to come up with this book! I'm glad I had the patience to build this book...

Tuesday, September 13, 2005

KestoG 1.1

I just put up a new version of Kestutis Gasaitis' Russian checkers engine, KestoG 1.1. The main difference to the previous version is that the hashtable is now resizeable - besides this, there are some minor modifications to the search. You can download it from the checkers download page.

Monday, September 12, 2005

KingsRow 1.15a

Ed Gilbert has published a new version of KingsRow, 1.15a. You can download it on his website. The new version of KingsRow plays a better game, and removes the engine unlock feature that future versions of CheckerBoard will no longer support. That means that older versions of Kingsrow (1.14xy and earlier) will no longer work with the next update of CheckerBoard.