Chess is one of the most popular intellectual sport in the world (it is also recognized by the International Olympic Committee) with one of the largest communities with 605 million adult players. In game theory terms it is a two-person, deterministic, zero sum board game with both player having perfect information. The size of the game space created from the possible subsequent moves in each position is huge even bigger than the number of the atoms in the observable universe. Therefore during a game players only consider a tiny portion of it while they are making their decision and that is the reason chess became popular amongst mathematicians and software developers. The moment when such a program got into the media was in 1997 when Deep Blue (developed by IBM) played against the current strongest player on earth, Garry Kasparov. Since then chess engines underwent serious development but they are still far away from solving the game.
A typical program can be divided into two distinct parts, the board representation which functions as a foundation of the engine and the decision making part which contains algorithms for search and evaluation.
My task for this project was to make a solid board representation that can function as a foundation of an engine capable of playing against human players and other programs. The first section of my thesis is a general introduction about the problems the program needs to handle and brief description of the different approaches and possible solutions used by other engines. After that the next section is about the implementation of such a solution with an attached test framework that helps to make sure that the basic functions (move generation, transposition calculation) work as intended. It also provides information that can be used during optimization.
The finished program supported by the artificial intelligence module developed by László Molnár ("Artificial intelligence for chess engine") works as expected and can compete with its challengers.