Skip to content
This repository was archived by the owner on Jul 8, 2023. It is now read-only.

Bot for tenhou.net riichi mahjong server written in Python

License

Notifications You must be signed in to change notification settings

MahjongRepository/tenhou-python-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

112b08f · Jul 8, 2023
Oct 28, 2021
Nov 11, 2018
Mar 1, 2021
Jul 8, 2023
Oct 21, 2021
Oct 28, 2021
Apr 17, 2016
Nov 18, 2020
Feb 10, 2021
Nov 27, 2018
Oct 21, 2021
Sep 16, 2020
Dec 11, 2020
Jul 8, 2023
Nov 19, 2020
Sep 16, 2020
Oct 21, 2020

Repository files navigation

Build [Tests coverage]

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?

Example of bot game

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?

  1. pip install -r requirements/lint.txt
  2. 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:

  1. Install Docker
  2. Run make build_docker
  3. Run make GAMES=1 run_battle it will play one game locally. Logs and replays will be stored in bots_battle folder.

Run bots with enabled decision logger (use it only for debug, since it harms performance):

  1. Run make GAMES=1 ARGS=--logs run_battle

Run multiple bots to play one game

  1. Install Docker and Install Docker Compose
  2. Run make build_docker
  3. 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.
  4. Run make run_on_tenhou

Configuration instructions

  1. Put your own settings to the project/settings/settings_local.py file. They will override settings from default settings/base.py file.
  2. 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