calcitem/sanmill
Sanmill is an open-source, UCI-like Mill/Morris/Merrills/Mühle/Malom (and its variants) program with CUI, Flutter GUI and Qt GUI, sharing and freely distributing the code, tools and data needed to deliver this mill game. We do this because we are convinced that open software and open data are key ingredients to make rapid progress.
npx skills add calcitem/sanmillREADME
Overview
Sanmill is a free, powerful UCI-like N men's morris program with CUI, Flutter GUI, and Qt GUI. It is distributed under the GNU General Public License version 3 (GPL v3), ensuring that it remains free software. Users can modify and redistribute the software, provided they adhere to the GPL terms.
Nine men's morris is a strategy board game for two players dating back 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 for compiling 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.
Frontend Options
Sanmill offers two frontend options: Flutter and Qt. The primary focus is on the Flutter frontend, which is actively developed and maintained, supporting Android, iOS, Windows, and macOS for a consistent cross-platform experience. The Qt frontend is mainly used for debugging the AI engine and is not actively maintained. Users are encouraged to use the Flutter frontend for the latest features and updates.
How to Build
CUI
Sanmill CUI supports 32 or 64-bit CPUs, certain hardware instructions, big-endian machines such as Power PC, and other platforms.
It should be easy to compile Sanmill directly from the source code on Unix-like systems with the included Makefile in the src folder. Generally, 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 provide information about the version and compiler used to create your executable. You can obtain this information by running:
./sanmill compiler
Flutter App
To build the Flutter app, run ./flutter-init.sh, and then use Android Studio or Visual Studio Code to open src/ui/flutter_app.
The script automatically provisions Flutter 3.38.7 in .tools/flutter when the required SDK
isn't already available on your system, ensuring the repository always uses the expected version.
We use compile-
...
