-
Notifications
You must be signed in to change notification settings - Fork 15
Majiang.Shoupai
手牌を表現するクラス
p が 牌 として正しければそのまま返す。正しくなければ null を返す。
_
は正しいと見なさない。
m が 面子 として正しければ正規化して返す。正しくなければ null を返す。
Majiang.Shoupai.valid_mianzi('m231-') == 'm1-23'
- qipai = [] - 牌 の配列
qipai (配牌)からインスタンスを生成する。qipai の要素数は13でなくてもよい。
- paistr = '' - 牌姿
- 返り値 - Majiang.Shoupai
paistr からインスタンスを生成する。手牌が14枚を超える牌姿の場合、超える分が純手牌(副露面子以外の打牌可能な手牌のこと)から取り除かれる。
以下の構成で純手牌の各牌の枚数を示す。添字0は赤牌の枚数。
{
_: 0, // 伏せられた牌
m: [0,0,0,0,0,0,0,0,0,0], // 萬子
p: [0,0,0,0,0,0,0,0,0,0], // 筒子
s: [0,0,0,0,0,0,0,0,0,0], // 索子
z: [0,0,0,0,0,0,0,0], // 字牌
}
副露牌を示す 面子 の配列。副露した順に配列する。暗槓子も含むので _fulou.length == 0
がメンゼンを示す訳ではないことに注意。
手牌が打牌可能な場合、最後にツモしてきた 牌 あるいは最後に副露した 面子。 打牌可能でない場合は null。
リーチ後に true になる。
- 返り値 - 牌姿
牌姿 に変換する。
- 返り値 - Majiang.Shoupai
複製する。
- paistr - 牌姿
- 返り値 - this
paistr で手牌を置き換える。
- p - 牌
- check = true - boolean
- 返り値 - this
p をツモる。check が真の場合、多牌となるツモは例外を発生する。
- p - 牌
- check = true - boolean
- 返り値 - this
p を打牌する。手牌にない牌あるいは _
の打牌は例外を発生する。
check が真の場合、少牌となる打牌も例外を発生する。
リーチ後の手出しはチェックしない。
- m - 面子
- check = true - boolean
- 返り値 - this
m で副露する。手牌にない構成での副露は例外を発生する。 check が真の場合、多牌となる副露も例外を発生する。 リーチ後の副露はチェックしない。
- m - 面子
- check = true - boolean
- 返り値 - this
m で暗槓もしくは加槓する。手牌にない構成での槓は例外を発生する。 check が真の場合、少牌となる槓も例外を発生する。 リーチ後の槓の正当性はチェックしない。
- 返り値 - boolean
メンゼンの場合、true を返す。
- 返り値 - boolean
リーチ後は true を返す。
- check = true - boolean
- 返り値 - 牌 の配列
打牌可能な牌の一覧を返す。赤牌およびツモ切りは別の牌として区別する。リーチ後はツモ切りのみ返す。 check が真の場合、喰い替えとなる打牌は含まない。 打牌すると少牌となる場合は null を返す。
p でチー可能な面子の一覧を返す。赤牌のありなしは別の面子として区別する。リーチ後は空配列を返す。 check が真の場合、喰い替えが必ず起きる面子は含まない。 チーすると多牌になる場合は null を返す。
p でポン可能な面子の一覧を返す。赤牌のありなしは別の面子として区別する。リーチ後は空配列を返す。 ポンすると多牌になる場合は null を返す。
p が指定された場合、それで大明槓可能な面子の一覧を返す。リーチ後は空配列を返す。 p が指定されない場合は加槓あるいは暗槓可能な面子の一覧を返す。リーチ後は送り槓は含まない。 カンすると少牌あるいは多牌になる場合は null を返す。