Implementation of classical Nim game based on automata approach



© A. V. Yakovlev, M. A. Lukin, À. À. Shalyto

Saint-Petersburg State University of Information Technologies, Mechanics and Optics

Project documentation in PDF format
Binaries (plus all third-party libraries needed to launch)
Source code in Java language (plus Eclipse project and build scripts)
Extended package of project documentation (main documentation with appendix)

Annotation

The goal of our project was to develop free implementation of well-known around the world game of Nim based on automata approach. To compare with analogues that we found in Internet at the moment of publication, we can mention that only our version contains either, open project documentation on two languages, graphical user interface on two languages and open source code with comments (automatas, controlled objects and event providers are commented in two languages). Three automatas are being used in project: managing automata, opponent's artificial intelligence automata and interface automata.

Artificial intelligence of the opponent makes the choice of optimal move with the help of estimation of game position with the special function (function of Sprag and Gandi), which is being computed using finite automata.

We have also implemented game in study mode, when you can (like in "Go") select how many odds you will receive from opponent.

Published version is capable of playing several widely known layouts such as "Classic", "Marienbad" etc.

Application is launched by run.cmd batch-file, while the usual build is performed by the rebuild.cmd file.