Utilities

Test Functions

options:
  show-signature:
options:
  show-signature:

Paipu Replay

options:
  show-signature:
options:
  show-signature:

Pretrained Models

VLOGMahjong

The VLOG (Variational Latent Oracle Guiding) model used as pretrained opponents.

options:
  members:
    - select
    - forward
  show-inheritance:

Model Files

Two pretrained models are available:

Model

Description

mahjong_VLOG_CQL.pth

VLOG + Conservative Q-learning

mahjong_VLOG_BC.pth

VLOG + Behavior Cloning

Download from GitHub Releases.

C++ Backend Classes

The following classes are exposed from the C++ backend via pybind11:

Table

import MahjongPyWrapper as pm

table = pm.Table()
table.game_init()
table.get_phase()
table.get_self_actions()
table.get_response_actions()
table.make_selection(0)

Player

player = table.players[0]
player.hand          # List of tiles
player.river         # Discarded tiles
player.score         # Player score
player.riichi        # Riichi status
player.is_tenpai()   # Check tenpai

Tile

tile = player.hand[0]
tile.tile      # BaseTile enum
tile.red_dora  # Whether red dora
tile.id        # Unique tile ID

BaseAction Enum

pm.BaseAction.Discard
pm.BaseAction.Chi
pm.BaseAction.Pon
pm.BaseAction.Kan
pm.BaseAction.Ron
pm.BaseAction.AnKan
pm.BaseAction.KaKan
pm.BaseAction.Riichi
pm.BaseAction.Tsumo
pm.BaseAction.Kyushukyuhai
pm.BaseAction.Pass

BaseTile Enum

# Characters (Man)
pm.BaseTile._1m  # through pm.BaseTile._9m

# Dots (Pin)
pm.BaseTile._1p  # through pm.BaseTile._9p

# Bamboo (Sou)
pm.BaseTile._1s  # through pm.BaseTile._9s

# Winds
pm.BaseTile.east
pm.BaseTile.south
pm.BaseTile.west
pm.BaseTile.north

# Dragons
pm.BaseTile.haku  # White
pm.BaseTile.hatsu # Green
pm.BaseTile.chu   # Red