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.