Web-based multiplayer Taiwanese 16-tile Mahjong (with full DAN scoring per ~/subterfuge).
- Server: Python (FastAPI + python-socketio + uvicorn). Imports
subterfugeas a git submodule. - Client: React (existing). socket.io-client for the realtime layer.
- Scoring: pluggable via subterfuge's
DanFullRuleset.
Requires Python 3.11+, Node 16+ with yarn, and git.
git clone --recurse-submodules git@github.com:darkterbear/mahjong.git
cd mahjong
make installmake devServer on http://localhost:8080, client on http://localhost:5000. Ctrl+C kills both.
make test— run all server + client testsmake build— production build of the clientmake run— Python server only (no auto-reload)make clean— remove caches and the client build
cd subterfuge
git fetch
git checkout <new-sha>
cd ..
git add subterfuge
git commit -m "Bump subterfuge to <new-sha>"Mahjong Tile Vectors by Cangjie6 is licensed under CC BY-SA 4.0.