mahjong.hand_calculating.yaku_list.yakuman
Concrete Yaku subclasses for yakuman-level patterns.
Yakuman are the highest-value hands in mahjong.
All classes are re-exported here for convenient access via
from mahjong.hand_calculating.yaku_list.yakuman import <ClassName>.
- class mahjong.hand_calculating.yaku_list.yakuman.Chiihou[source]
Bases:
Yaku地和: Non-dealer wins on the initial draw.
- yaku_id: int = 116
Unique numeric identifier for this yaku.
- name: str = 'Chiihou'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.Chinroutou[source]
Bases:
Yaku清老頭: Hand composed entirely of terminal tiles.
- yaku_id: int = 108
Unique numeric identifier for this yaku.
- name: str = 'Chinroutou'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_open: int = 13
Han awarded for open hands.
0means the yaku is not available when the hand is open.
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.ChuurenPoutou[source]
Bases:
Yaku九蓮宝燈: The hand contains 1-1-1-2-3-4-5-6-7-8-9-9-9 of one suit, plus any other tile of the same suit.
- yaku_id: int = 101
Unique numeric identifier for this yaku.
- name: str = 'Chuuren Poutou'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.DaburuChuurenPoutou[source]
Bases:
Yaku純正九蓮宝燈: Chuuren Poutou with a nine-sided wait (double yakuman).
- yaku_id: int = 114
Unique numeric identifier for this yaku.
- name: str = 'Daburu Chuuren Poutou'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_closed: int = 26
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.DaburuKokushiMusou[source]
Bases:
Yaku国士無双十三面待ち: Kokushi Musou with a thirteen-sided wait (double yakuman).
- yaku_id: int = 112
Unique numeric identifier for this yaku.
- name: str = 'Kokushi Musou Juusanmen Matchi'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_closed: int = 26
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.DaiSuushii[source]
Bases:
Yaku大四喜: The hand contains four sets of winds.
- yaku_id: int = 111
Unique numeric identifier for this yaku.
- name: str = 'Dai Suushii'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_open: int = 26
Han awarded for open hands.
0means the yaku is not available when the hand is open.
- han_closed: int = 26
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.Daichisei[source]
Bases:
Yaku大七星: Seven pairs of honor tiles.
- yaku_id: int = 110
Unique numeric identifier for this yaku.
- name: str = 'Daichisei'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.Daisangen[source]
Bases:
Yaku大三元: The hand contains three sets of dragons.
- yaku_id: int = 103
Unique numeric identifier for this yaku.
- name: str = 'Daisangen'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_open: int = 13
Han awarded for open hands.
0means the yaku is not available when the hand is open.
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.Daisharin[source]
Bases:
Yaku大車輪: Seven pairs of 2-3-4-5-6-7-8 in a single suit (optional yakuman).
By default only the pin suit qualifies (daisharin). When other suits are allowed, the yaku is renamed to daisuurin (man) or daichikurin (sou).
- yaku_id: int = 109
Unique numeric identifier for this yaku.
- name: str = 'Daisharin'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- rename(hand)[source]
Set the yaku name based on the suit of the hand.
- Parameters:
hand (Sequence[Sequence[int]]) – decomposed hand as a sequence of tile groups in 34-format
- Return type:
None
- is_condition_met(hand, allow_other_sets, *args)[source]
Check whether the hand is seven pairs of 2-3-4-5-6-7-8 in a single suit.
- Parameters:
hand (Collection[Sequence[int]]) – decomposed hand as a collection of tile groups in 34-format
allow_other_sets (bool) – if True, allow any single suit; if False, require pin suit only
- Returns:
True if the hand matches the daisharin pattern
- Return type:
bool
- class mahjong.hand_calculating.yaku_list.yakuman.KokushiMusou[source]
Bases:
Yaku国士無双: A hand composed of one of each terminal and honor tile plus one duplicate.
The duplicate tile determines the winning wait.
- yaku_id: int = 100
Unique numeric identifier for this yaku.
- name: str = 'Kokushi Musou'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- is_condition_met(hand, tiles_34, *args)[source]
Check whether the hand is a complete thirteen orphans.
- Parameters:
hand (Collection[Sequence[int]] | None) – not used for kokushi; pass None
tiles_34 (Sequence[int]) – hand in 34-format count array
- Returns:
True if the hand contains one of each terminal and honor with exactly one duplicate
- Return type:
bool
- class mahjong.hand_calculating.yaku_list.yakuman.Paarenchan[source]
Bases:
Yaku八連荘: Consecutive dealer wins, scored as yakuman when the threshold is reached (optional rule).
- yaku_id: int = 119
Unique numeric identifier for this yaku.
- name: str = 'Paarenchan'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_open: int = 13
Han awarded for open hands.
0means the yaku is not available when the hand is open.
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.RenhouYakuman[source]
Bases:
Yaku人和 (役満): Non-dealer wins on the first go-around before any calls, scored as yakuman (optional rule).
- yaku_id: int = 117
Unique numeric identifier for this yaku.
- name: str = 'Renhou (yakuman)'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.Ryuuiisou[source]
Bases:
Yaku緑一色: Hand composed entirely of green tiles. Green tiles are: green dragons and 2, 3, 4, 6 and 8 of sou.
- yaku_id: int = 105
Unique numeric identifier for this yaku.
- name: str = 'Ryuuiisou'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_open: int = 13
Han awarded for open hands.
0means the yaku is not available when the hand is open.
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.Sashikomi[source]
Bases:
Yaku差し込み: Intentional deal-in for open riichi, scored as yakuman (optional rule).
- yaku_id: int = 118
Unique numeric identifier for this yaku.
- name: str = 'Sashikomi'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.Shousuushii[source]
Bases:
Yaku小四喜: The hand contains three sets of winds and a pair of the remaining wind.
- yaku_id: int = 104
Unique numeric identifier for this yaku.
- name: str = 'Shousuushii'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_open: int = 13
Han awarded for open hands.
0means the yaku is not available when the hand is open.
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.Suuankou[source]
Bases:
Yaku四暗刻: Four closed pon sets.
- yaku_id: int = 102
Unique numeric identifier for this yaku.
- name: str = 'Suu Ankou'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- is_condition_met(hand, win_tile, is_tsumo)[source]
Check whether the hand contains four closed pon or kan sets.
- Parameters:
hand (Collection[Sequence[int]]) – decomposed hand as a collection of tile groups in 34-format
win_tile (int) – winning tile index in 136-format
is_tsumo (bool) – True if the win is by self-draw
- Returns:
True if the hand contains exactly four closed pon or kan sets
- Return type:
bool
- class mahjong.hand_calculating.yaku_list.yakuman.SuuankouTanki[source]
Bases:
Yaku四暗刻単騎: Four closed pon sets with a pair wait (double yakuman).
- yaku_id: int = 113
Unique numeric identifier for this yaku.
- name: str = 'Suu Ankou Tanki'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_closed: int = 26
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.Suukantsu[source]
Bases:
Yaku四槓子: The hand with four kan sets.
- yaku_id: int = 106
Unique numeric identifier for this yaku.
- name: str = 'Suu Kantsu'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_open: int = 13
Han awarded for open hands.
0means the yaku is not available when the hand is open.
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- is_condition_met(hand, melds, *args)[source]
Check whether the hand contains four kan sets.
- Parameters:
hand (Collection[Sequence[int]]) – decomposed hand as a collection of tile groups in 34-format
melds (Collection[Meld]) – declared melds
- Returns:
True if four of the melds are kan or shouminkan
- Return type:
bool
- class mahjong.hand_calculating.yaku_list.yakuman.Tenhou[source]
Bases:
Yaku天和: Dealer wins on the initial draw.
- yaku_id: int = 115
Unique numeric identifier for this yaku.
- name: str = 'Tenhou'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).
- class mahjong.hand_calculating.yaku_list.yakuman.Tsuuiisou[source]
Bases:
Yaku字一色: Hand composed entirely of honor tiles.
- yaku_id: int = 107
Unique numeric identifier for this yaku.
- name: str = 'Tsuu Iisou'
Display name of the yaku (e.g.,
"Tanyao","Kokushi Musou").
- han_open: int = 13
Han awarded for open hands.
0means the yaku is not available when the hand is open.
- han_closed: int = 13
Han awarded for closed hands.
0means the yaku is not available when the hand is closed.
- is_yakuman: bool = True
Whether this yaku is a yakuman (worth 13 han or more).