Sanmill
Sanmill is a free, powerful UCI-like N men's morris program with CUI, Flutter GUI and Qt GUI.
Nine men's morris is a strategy board game for two players dating at least to the Roman Empire. The game is also known as nine-man morris, mill, mills, the mill game, merels, merrills, merelles, marelles, morelles, and ninepenny marl in English.
Files
This distribution of Sanmill consists of the following files:
-
Readme.md, the file you are currently reading.
-
Copying.txt, a text file containing the GNU General Public License version 3.
-
src, a subdirectory containing the full source code, including a Makefile that can be used to compile Sanmill CUI on Unix-like systems.
-
src/ui/flutter_app, a subdirectory containing a Flutter frontend.
-
src/ui/qt, a subdirectory containing a Qt frontend.
How to Build
CUI
Sanmill CUI has support for 32 or 64-bit CPUs, certain hardware instructions, big-endian machines such as Power PC, and other platforms.
On Unix-like systems, it should be easy to compile Sanmill directly from the source code with the included Makefile in the folder src
. In general it is recommended to run make help
to see a list of make targets with corresponding descriptions.
cd src
make help
make build ARCH=x86-64-modern
When reporting an issue or a bug, please tell us which version and compiler you used to create your executable. These information can be found by typing the following commands in a console:
./sanmill compiler
Qt Application
If you have started using Ubuntu or any Ubuntu-based Linux distribution, you must install Qt by running the following command as root:
sudo apt-get install qt5-default qtmultimedia5-dev qtcreator
Use Qt Creator to open millgame.pro
, or use Visual Studio to open millgame.sln
to build Qt Application.
Flutter App
Run ./flutter-init.sh
, copy src/ui/flutter_app/android/key.properties.example
to src/ui/flutter_app/android/key.properties
, modify it, and then use Android Studio or Visual Studio Code to open src/ui/flutter_app
to build Flutter App.
Understanding the code base and participating in the project
Sanmill's improvement over the last couple of years has been a great community effort. There are a few ways to help contribute to its growth.
Improving the code
If you want to help improve the code, there are several valuable resources:
-
In this wiki, many techniques used in Sanmill are explained with a lot of background information.
-
The latest source can always be found on GitHub.
-
Discussions about Sanmill take place in the Discussions.