立直麻将小工具
Project description
mahjong-utils-py
日麻小工具ssttkkl/mahjong-utils的Python绑定
已实现功能:
- 获取番符对应和牌点数
- 向听数、进张分析
- 和了分析(役种、番数、符数)
安装
pip install mahjong-utils
或通过源码安装(本机必须配置JDK环境用于编译):
pip install git+https://github.com/ssttkkl/mahjong-utils-py.git
使用
获取番符对应和牌点数
from mahjong_utils.point_by_han_hu import get_parent_point_by_han_hu, get_child_point_by_han_hu
# 获取亲家X番Y符的点数,返回(荣和点数, 自摸各家点数)
parent_ron, parent_tsumo = get_parent_point_by_han_hu(3, 40)
# parent_ron == 7700
# parent_tsumo == 2600
# 获取子家X番Y符的点数,返回(荣和点数, 自摸庄家点数, 自摸闲家点数)
child_ron, child_tsumo_parent, child_tsumo_child = get_child_point_by_han_hu(3, 40)
# child_ron == 5200
# child_tsumo_child == 1300
# child_tsumo_parent == 2600
向听数、进张分析
from mahjong_utils.models.tile import parse_tiles
from mahjong_utils.shanten import shanten
# 向听数、进张分析(未摸牌状态)
result = shanten(parse_tiles("34568m235p68s"))
result.shanten
# 1
result.advance
# {3m, 6m, 7m, 8m, 1p, 2p, 3p, 4p, 5p, 6s, 7s, 8s}
# 向听数、进张分析(已摸牌状态)
result = shanten(parse_tiles("112233p44556s127z"))
result.shanten
# 1
result.discard_to_advance
# {1p: ShantenWithoutGot(shanten=2, advance={2z, 7z, 1p, 4p, 3s, 6s, 1z}, advance_num=22, good_shape_advance=None, good_shape_advance_num=None),
# 2p: ShantenWithoutGot(shanten=2, advance={2z, 7z, 2p, 3s, 6s, 1z}, advance_num=18, good_shape_advance=None, good_shape_advance_num=None),
# 3p: ShantenWithoutGot(shanten=2, advance={2z, 7z, 3p, 3s, 6s, 1z}, advance_num=18, good_shape_advance=None, good_shape_advance_num=None),
# 4s: ShantenWithoutGot(shanten=2, advance={2z, 7z, 3s, 4s, 5s, 6s, 7s, 1z}, advance_num=24, good_shape_advance=None, good_shape_advance_num=None),
# 5s: ShantenWithoutGot(shanten=2, advance={2z, 7z, 2s, 3s, 4s, 5s, 6s, 1z}, advance_num=24, good_shape_advance=None, good_shape_advance_num=None),
# 6s: ShantenWithoutGot(shanten=1, advance={2z, 7z, 1z}, advance_num=9, good_shape_advance=set(), good_shape_advance_num=0),
# 1z: ShantenWithoutGot(shanten=1, advance={2z, 6s, 7z, 3s}, advance_num=13, good_shape_advance={2z, 7z}, good_shape_advance_num=6),
# 2z: ShantenWithoutGot(shanten=1, advance={6s, 3s, 7z, 1z}, advance_num=13, good_shape_advance={7z, 1z}, good_shape_advance_num=6),
# 7z: ShantenWithoutGot(shanten=1, advance={2z, 6s, 3s, 1z}, advance_num=13, good_shape_advance={2z, 1z}, good_shape_advance_num=6)}
和了分析
from mahjong_utils.hora import build_hora
from mahjong_utils.models.tile import parse_tiles, Tile
from mahjong_utils.models.wind import Wind
from mahjong_utils.models.furo import Furo
from mahjong_utils.yaku.common import self_wind, round_wind
# 和了分析
hora = build_hora(
tiles=parse_tiles("12233466m111z"),
furo=[Furo.parse("789p")],
agari=Tile.by_text("1z"),
tsumo=True,
dora=4,
self_wind=Wind.east,
round_wind=Wind.east
)
# hora.yaku == {self_wind, round_wind}
# hora.han == 6
# hora.hu == 30
# hora.parent_point == (18000, 6000)
# hora.child_point == (12000, 6000, 3000)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mahjong-utils-0.2.1.post1.tar.gz
(166.1 kB
view hashes)
Built Distributions
Close
Hashes for mahjong-utils-0.2.1.post1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d97aca18549fe9d5b3fc9e238eb28219bfd92f222b057b7f94365ae0ad06a8d6 |
|
MD5 | 6032139e147b3825e9c0953f296cecc3 |
|
BLAKE2b-256 | b642a0a2513ef42ac49fa3dde70feff2ca32b59e151478af5b40ce6ea74a2b7d |
Close
Hashes for mahjong_utils-0.2.1.post1-py3-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06917b86f8dcfb01aa2789501bc93701017d9b3e253234af9141bf83b8067926 |
|
MD5 | e36334f139d70f5e0986d07b7682e45d |
|
BLAKE2b-256 | f074a4b2b66547fe80c91137f0bb5b3e5db510f6df61a44647e729026a474c9f |
Close
Hashes for mahjong_utils-0.2.1.post1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a78a5e9525bb797e82d7014c8870b1d312b75ee172c609825179befd9988d86 |
|
MD5 | f13a1238edac9f40cff223910507c54c |
|
BLAKE2b-256 | b1f24f0271a0fdf166dfe89c70a2bb7adc0a95a13b244b0c35418df06fc66aee |
Close
Hashes for mahjong_utils-0.2.1.post1-py3-none-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c7c4c62dea8cec03ff0e47f1a5e04ca9b027d210a03acb40df4cdc173770b6f |
|
MD5 | f4eb9101b42650c4fa54eae2e1413095 |
|
BLAKE2b-256 | 6be527387ce3037ba44f72c89d7f38e70c536db6293077aea26c15493ee3ae9d |