A library for Fan Calculation of Mahjong in Chinese Standard Rule.
Project description
Mahjong Fan Calculator Python
Install
pip install PyMahjongGB
Usage
MahjongFanCalculator
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.
MahjongShanten
from MahjongGB import MahjongShanten
# 计算向听函数
shanten MahjongShanten(
pack = ((packType, tileCode, offer), ...),
hand = (tileCode, ...))
- 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.
- return: This function returns an integer: shanten
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.3.0.tar.gz
(50.9 kB
view details)
File details
Details for the file PyMahjongGB-0.3.0.tar.gz.
File metadata
- Download URL: PyMahjongGB-0.3.0.tar.gz
- Upload date:
- Size: 50.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f343e78aeb0a83700d621ac3ca268f0520a1c2c28944735761c29d9d41257819
|
|
| MD5 |
13666dee3ff227c85fdad6579231ca7d
|
|
| BLAKE2b-256 |
2228b2b1a09f7be494779164a6da2b3a36889aeba7310dd5d4399de110f6c0a0
|