tenhou-python-bot
tenhou-python-bot copied to clipboard
Bot for tenhou.net riichi mahjong server written in Python
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 on tenhou.net server.
Here you can read about bot played games statistic: versions history
For developers
How to run it?
pip install -r requirements/lint.txt- Run
cd project && python main.pyit 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_battleit will play one game locally. Logs and replays will be stored inbots_battlefolder.
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.pyfile. They will override settings from defaultsettings/base.pyfile. - Also, you can override some default settings with command arguments.
Use
python main.py -hto check all available commands.
Game reproducer
It can be useful to debug bot errors or strange discards: game reproducer