I am sure I left out a lot of them (I have several hundred source codes, though many of them are not publicly available), but all of these are good learning tools:
- Code: Select all
amundsen
amy
amyan (I am not sure if source is still available)
arasan
beowulf
booot (Pascal derivative)
crafty
delfi (Pascal derivative)
diablo
elephant (source by request)
faile {simple}
fruit
gerbil {simple -- interesting callback idea that nobody else does}
glaurung
gnuchess 4.x
gnuchess 5.x {tragically, too many cooks now spoiling the broth}
greko
gullydeckel {simple}
hoichess
lime
micromax {almost IOCCC entry but hours of fun}
monsoon
mscp {simple}
Natwarlal
olithink {simple}
pepito {spanish speakers start here}
Phalanx {nice search ideas}
SamChess {simple}
scorpio
Sjeng
slowchess
strelka
thorshammer
vanillachess {simple}
viper {SMP learning sample}
If you could only look at 5 of them, I would choose {in no particular order}:
1. Fruit
2. Scorpio
3. Olithink {simple bitboard learning tool}
4. SamChess {simple non-bitboard learning tool -- read this one 1st}
5. Glaurung
I would recommend against TSCP. It has too many bad habits for a modern chess engine if someday you hope to make a SMP engine from your outline. If you want to learn how to write a start-up chess engine, use an outline like SamChess or Olithink. Bruce Moreland's engine is nice but it seems a lot of people get confused by the callbacks. The hungarian notation is a bit grating to some people who have an aversion to it (I like it fine, but I have heard complaints from some who don't)
Elephant is really interesting. Lots and lots of different bitboard techniques. Thorshammer is overlooked for some reason. Quite an interesting read and not a pushover.
Crafty is the "War and Peace" of C chess engines and Arasan is the C++ version of your epic novel. (The doxygen documentation for these will be too big for the stapler).
If I left someone's ultra cool engine out of this list, it's just an oversight. I did this off the top of my head.