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.
What do we have here?
Mahjong hands calculation
You can find it here: https://github.com/MahjongRepository/mahjong
Mahjong bot
For research purposes we built a simple bot to play riichi mahjong. It can be run locally.
For developers
How to run it?
pip install -r requirements/lint.txt
- Run
cd project && python main.py
it will connect to the tenhou.net and will play a game.
How to run bot battle with pypy
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
Run multiple bots to play one game
- 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
Configuration instructions
- 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.
Game reproducer
It can be useful to debug bot errors or strange discards: game reproducer