Long, long time ago, when I was still a full time student, I became first in a checkers tournament with a program I wrote. Alas, those days of glory are over.
Looking back, the program was pretty simple. Choosing an efficient board representation made generating the moves a piece of cake. My program didn’t make use of any opening libraries or endgame strategies, it just implemented minimax search with alpha-beta pruning.
Although my program wasn’t very sophisticated, I still think it was pretty sweet and felt disappointed when I realized I had lost the source code. That’s why I decided to implement this game again only this time in Java (the original was written in C++). Check out my code here.