This is a web application to play the well-known game of Nine Men's Morris.
This project was developed by Christoph Reinisch as a bachelor thesis for computer science, supervised by Oswin Aichholzer, at Graz University of Technology. The java server and the webapp are based on a project by Christian Kollmann.
The server is written in Java 11, using the Spring framework. The client is written in HTML and JavaScript, using jQuery. Compatibility was tested in Chromium and Mozilla Firefox running on Linux, Android and Windows. Nevertheless the application should be compatible with any browser like Microsoft Internet Explorer.
The AI of this game is based on an exhaustive evaluation of all possible game positions stored in a large data base. For each possible board its status (current player win, opponent player win, draw) is known, as well as as the minimum number of half moves needed to force a win from this board. A green even number shows in how many further half-moves the game can be won by taking this move (assuming optimal play of the opponent, otherwise you can win faster). A red odd number shows the maximum number of half-moves you can delay the victory of the opponent (again assuming optimal play of the opponent). A 'D' indicates a position where the current player can force a draw. So an even number shows a winning move, which guarantees a win for the current player (when continuing to play optimal) in at most this number of half-moves. An optimal winning move is a move which guarantees the shortest available sequence of half-moves till the player wins.
Click on a selected piece a second time to deselect it.