Skip to main content

A library for Fan Calculation of Mahjong in Chinese Standard Rule.

Project description

Mahjong Fan Calculator Python

README:English|中文

from MahjongGB import MahjongFanCalculator

# 算番函数
((fanCount, fanName), ...) MahjongFanCalculator(
    pack = ((packType, tileCode, offer), ...),
    hand = (tileCode, ...),
    winTile = tileCode,
    flowerCount = int 0..8,
    isSelfDrawn = bool,
    is4thTile = bool,
    isAboutKong = bool,
    isWallLast = bool,
    seatWind = int 0..3,
    prevalentWind = int 0..3,
	[optional, default = False]verbose = bool)
  • pack: The declared tiles. A tuple of tuples of three elements each: packType of "PENG"/"GANG"/"CHI" for PUNG, KONG and CHOW, tileCode (see details below), middle tile in case of CHOW, offer, 1, 2, 3 for player on left/opposite/right who offers this tile in case of PUNG and KONG, 1, 2, 3 for which tile is offered in case of CHOW.
  • hand: The concealed tiles in hand. A tuple of tileCodes.
  • winTile: The winning tile to make Mahjong.
  • flowerCount: The number of the Flower and Season tiles.
  • isSelfDrawn: Whether the winning tile is self-drawn.
  • is4thTile: Whether the winning tile is the 4th tile.
  • isAboutKong: Whether the winning is about Kong. If the player wins by other's discard, it is Robbing the Kong. Otherwise, if the player wins by self-drawn, it is Out with Replacement Tile.
  • isWallLast: Whether the winning tile is the last one in tile wall. If self-drawn, it is Last Tile Draw. Otherwise, it is Last Tile Claim.
  • seatWind: Seat wind. The number 0, 1, 2, 3 represent East, South, West, and North respectively.
  • prevalentWind: Prevalent wind. The number 0, 1, 2, 3 represent East, South, West, and North respectively.
  • verbose: Default to False. If set to True, return format is (fan_point, cnt, fan_name, fan_name_en) instead of (fan_count, fan_name).
  • return: This function returns a tuple of tuples of two elements each: the fan count and fan name of each fan.

TileCode Table: W1 ~ W9 for CHARACTERS, T1 ~ T9 for BAMBOOS, B1 ~ B9 for DOTS, F1 ~ F4 for WINDS, J1 ~ J3 for DRAGONS, H1 ~ H8 for FLOWERS and SEASONS.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyMahjongGB-0.2.0.tar.gz (51.7 kB view details)

Uploaded Source

File details

Details for the file PyMahjongGB-0.2.0.tar.gz.

File metadata

  • Download URL: PyMahjongGB-0.2.0.tar.gz
  • Upload date:
  • Size: 51.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.9.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.1

File hashes

Hashes for PyMahjongGB-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5cd182dbb5c90ea6d12deccdd4e273bae4af64f3fdff215cac8873f5f6251c7c
MD5 b5a6e2575c4b75027f97bd36cf810e88
BLAKE2b-256 84a05b0c5ed56c4339b475e646ceefd1fc8d18294794f83d6f0ba5bbc822df55

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page