The project is not maintained anymore, and exists primary for historical reasons and references.
Bot was tested with Python 3.7 and PyPy3, we are not supporting Python 2.
You can find it here: https://github.com/MahjongRepository/mahjong
For research purposes we built a simple bot to play riichi mahjong. It can be run locally.
pip install -r requirements/lint.txt
- Run
cd project && python main.py
it will connect to the tenhou.net and will play a game.
To make it easier run bot vs bot battles we prepared PyPy3 Docker container.
Run the game locally:
- Install Docker
- Run
make build_docker
- Run
make GAMES=1 run_battle
it will play one game locally. Logs and replays will be stored inbots_battle
folder.
Run bots with enabled decision logger (use it only for debug, since it harms performance):
- Run
make GAMES=1 ARGS=--logs run_battle
- Install Docker and Install Docker Compose
- Run
make build_docker
- Put bot configs to
project/settings/
. By default we are looking for these configs:bot_1_settings.py
,bot_2_settings.py
,bot_3_settings.py
,bot_4_settings.py
,bot_5_settings.py
. Why 5 settings? Because tenhou doesn't start 2 game in the custom lobby if you are running only 4 bots. - Run
make run_on_tenhou
- Put your own settings to the
project/settings/settings_local.py
file. They will override settings from defaultsettings/base.py
file. - Also, you can override some default settings with command arguments.
Use
python main.py -h
to check all available commands.
It can be useful to debug bot errors or strange discards: game reproducer