In this hobby project I will try to implement a chess engine from scratch in Python, and then teach it to play chess using different AI techniques.
The idea is to first implement the game itself, i.e. a chessboard plus a judge that only allows legal moves and checks whether the game is finished, in which case it will announce the outcome. At this point, we should be able to play a 2-player (i.e. human vs. human) game using the program.
In the next step, we will focus on designing an agent (i.e. computer opponent) using different AI methods. We will strat with simple search algorithms, and build up towards machine learning and deep learning techniques. Let's see up to which point I can still beat the algorithm!
I will document the whole process in this Twitter thread and in the Wiki page of the repository. Comments and suggestions are most welcome!