Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are some good resources for writing a chess engine? [closed]

I'm interested in writing a chess engine (mostly as a learning exercise) and would be interested in any resources that people know of that could be of interest or use, anything really: Papers, Books, Theory, Tutorials, anything that could be useful.

like image 447
Paul Wicks Avatar asked Jan 30 '09 06:01

Paul Wicks


People also ask

What are chess engines written in?

TSCP is a small tutorial engine, and even it has over 2200 lines of code. TSCP is big because first, it is written in C. From experience I can say that what can be achieved by 20 lines of code in C can be achieved in less than 4 lines using higher level languages like Python.

Is it hard to code a chess engine?

For an experienced programmer it should be very easy. Even writing a basic engine from scratch is not particularly hard, but a little time consuming.

Will a human ever beat a chess engine?

No human has beaten a computer in a chess tournament in 15 years. In new research, a team including Jon Kleinberg, the Tisch University Professor of Computer Science, developed an artificially intelligent chess engine that doesn't necessarily seek to beat humans – it's trained to play like a human.


2 Answers

From my archives:

  • This is a useful chess programming wiki.
  • This is a simple introduction to chess programming.
  • This is a (free) book on chess algorithms.
  • This contains several easy step-by-step YouTube tutorial series' ranging from beginner to advanced level.
  • This is a more advanced introduction.
  • This is Adam Berent's interesting computer chess blog.
  • This is a good analysis of MTD(f), an interesting search algorithm.
  • This is a good guide to validation of move generation.
  • This is lots of good information on the Rebel chess engine.
  • This is lots of good information on the Dark Thought chess engine.
  • Good information and source code for the Monsoon chess engine.
  • These are more notes on chess programming.
  • A reasonable introduction to rotated bitboards.
  • A reasonable introduction to magic bitboards.
  • A reasonable introduction to late move reductions.
  • A look at null-move pruning.
  • A collection of position sets for testing purposes.
  • Here is an old report from 2 students who wrote a chess program.
  • A bunch of miscellaneous chess programming links.
  • Finally, here is Wikipedia's take on computer chess.
like image 125
16 revs, 3 users 89% Avatar answered Sep 25 '22 08:09

16 revs, 3 users 89%


When creating my chess engine I spent months trying to collect good resources that describe some of the harder aspects of creating a chess game. Here is a list of the ones I found most useful:

Chess Programming by François Dominic Laramée

This is the article that got me into computer chess, It is a great overview of how computers play chess. It is extremely easy to read and it will introduce you to all the terms and keywords.

http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/chess-programming-part-i-getting-started-r1014

Computer chess wiki, this has really expanded over the last few months. It is an excellent resource for reference material.

https://www.chessprogramming.org/Main_Page

Louis Kessler's Computer Chess Links

Once you go through the above resources the remainder can be found at the following links page.

http://www.lkessler.com/cclinks.shtml

Last but not least I write a Computer Chess Blog that takes you through all the steps of writing a chess engine in C# from scratch, it includes a computer chess links section and a chess game starter kit.

http://www.chessbin.com

Adam Berent

like image 36
Adam Berent Avatar answered Sep 25 '22 08:09

Adam Berent