An amazing repository of articles on Chess programming
When I went to University, I stayed in the halls of residence and there was a final year student there who was into chess programming- heady stuff for a first year student. It’s always held a bit of a fascination for me – I’ve been playing chess since the age of 11 though never particularly well. I’ve found most chess programs could beat me unless I take a great deal of care and spend a long time thinking.
The Chess Programming Wiki has almost 4,000 articles on all aspects of chess programming across 7500 pages. If you are interested in chess programming and unfamiliar with this then you are missing out. This uses the mediawiki software (same as Wikipedia) so can be a little opaque. I’ve found if you click the Special pages link on the left then All pages that it gives a much wider overview.
A bit of searching found the programming languages page and disappointingly there is no entry for C although there is a page on C in the Wiki! This links to CFish, a C port of the Stockfish open source chess engine which is mostly C++. If you can write a program to beat beat Stockfish then you are indeed an awesome programmer!
Of course, AlphaZero has recently dominated play in chess, Go and Shogi. What makes this different is that its mostly self taught using an AI technique called reinforcement learning. You just tell it the rules of chess. This contrasts with “traditional” chess programming where moves are determined ahead and evaluation routines called.