-
Notifications
You must be signed in to change notification settings - Fork 15
Majiang.Util
Satoshi Kobayashi edited this page Apr 12, 2022
·
6 revisions
シャンテン数計算、和了点計算ルーチン
- shoupai - Majiang.Shoupai
- 返り値 - number
shoupai のシャンテン数を返す。
- shoupai - Majiang.Shoupai
- 返り値 - number
shoupai の一般手(七対子形、国士無双形以外)としてのシャンテン数を返す。
- shoupai - Majiang.Shoupai
- 返り値 - number
shoupai の七対子形としてのシャンテン数を返す。
- shoupai - Majiang.Shoupai
- 返り値 - number
shoupai の国士無双形としてのシャンテン数を返す。
- shoupai - Majiang.Shoupai
- f_xiangting = xiangting - function
- 返り値 - 牌 の配列
shoupai に1枚加えるとシャンテン数の進む 牌 の配列を返す。 f_xiangting で指定された関数をシャンテン数計算の際に使用する。 返り値には赤牌は含まない。 shoupai がツモると多牌になる場合は null を返す。
- shoupai - Majiang.Shoupai
- rongpai - 牌
- param - object
- 返り値 - object
shoupai の和了点を計算し、和了情報とともに返す。
ツモ和了の場合は shoupai はツモ牌を加えた状態で rongpai は null とする。
ロン和了の場合は shoupai はロン牌を加えない状態で rongpai はロンした 牌 とする。rongpai には誰がロンしたかを示す +
(下家から和了)/=
(対面から和了)/-
(上家から和了) のフラグを付加する。
param は以下の構造のオブジェクトであり、和了点計算に使用する場況情報を示す。
{
rule: Majiang.rule(),
zhuangfeng: 0,
menfeng: 0,
hupai: {
lizhi: 0,
yifa: false,
qianggang: false,
lingshang: false,
haidi: 0,
tianhu: 0
},
baopai: [ 'm1' ],
fubaopai: null,
jicun: {
changbang: 0,
lizhibang: 0
}
}
- rule: 和了点計算時に使用する ルール。
-
zhuangfeng: 場風。(
0
: 東、1
: 南、2
: 西、3
: 北) -
menfeng: 自風。(
0
: 東、1
: 南、2
: 西、3
: 北) -
hupai: 状況役
-
lizhi:
0
: リーチなし、1
: リーチ、2
: ダブルリーチ。 - yifa: 一発のとき true。
- qianggang: 槍槓のとき true。
- lingshang: 嶺上開花のとき true。
-
haidi:
0
: ハイテイなし、1
: ハイテイツモ、2
: ハイテイロン。 -
tianhu:
0
: 天和/地和なし、1
: 天和、2
: 地和。
-
lizhi:
- baopai: ドラ表示牌の配列。
- fubaopai: 裏ドラ表示牌の配列。リーチのない場合は null。
-
jicun: 供託
- changbang: 積み棒の本数。
- lizhibang: リーチ棒の本数。
返り値は以下の構造のオブジェクトである。
{
hupai: [ { name: "立直", fanshu: 1 },
{ name: "門前清自模和", fanshu: 1 },
{ name: "裏ドラ", fanshu: 1 } ],
fu: 40,
fanshu: 3,
damanguan: null,
defen: 5200,
fenpei: [ -2600, 6200, -1300, -1300 ]
}
-
hupai:
和了役の配列。それぞれの要素には役名を示す name と翻数を示す fanshu がある。
役満の場合 fanshu は数字ではなく、和了役それぞれの役満複合数分の
*
となる。 また役満のパオがあった場合は baojia に責任者を設定する。 - fu: 符。役満の場合は undefined。
- fanshu: 翻数。役満の場合は undefined。
- damanguan: 役満複合数。複合には四暗刻をダブル役満にする類のものと、大三元と字一色の複合のような役の複合のケースがある。役満でない場合は undefined。
- defen: 和了打点。供託収入は含まない。
- fenpei: 供託を含めたその局の点数の収支。その局の東家から順に並べる。 リーチ宣言による1000点減は収支に含めない。
- param = {} - Object
- 返り値 - Object
param で指定された値を元に Majiang.Util#hule の第3パラメータに使用する場況情報を返す。
- shoupai - Majiang.Shoupai
- rongpai - 牌
- 返り値 - 和了形の配列
shoupai の手牌から rongpai で和了したときの和了形の一覧を返す。 和了形にならない場合は空配列を返す。