-
Notifications
You must be signed in to change notification settings - Fork 15
Majiang.Player
対局者を実現する基底クラス
唯一のメソッド Majiang.Player#action の非同期呼び出しで受信した メッセージ#通知メッセージ に対して行動を決定し、メッセージ#応答メッセージ を応答する。
本クラスは抽象クラスであり、Majiang.Player#action から各メッセージに対応するメソッドを呼び出すが、そのメソッドは 卓情報 を更新するのみの実装である。卓情報から具体的な行動を決定し、応答を返す処理はサブクラスで実装する必要がある。
_model に空の卓情報をもつインスタンスを生成する。
- msg - メッセージ#通知メッセージ
- callback - function
msg に対応するメソッドを呼び出す。
- 返り値 - 卓情報
インスタンス変数 _model を返す。
- view - object
インスタンス変数 _view に view を設定する。
メッセージ#開局 で通知された自身の席順(0
: 仮東、1
: 仮南、2
: 仮西、3
: 仮北)。
- reply - メッセージ#通知メッセージ
Majiang.Player#action 呼び出し時に指定された応答送信用関数。
Majiang.Board で設定する 卓情報。
現在の局の自風。(0
: 東、1
: 南、2
: 西、3
: 北)
第一ツモ巡の間は true。
現在の局で全ての対局者が行ったカンの総数。
自身のフリテン状態。ロン和了可能なら true。
卓情報 を描画するクラス。 Majiang.Player からは適切なタイミングでメソッドを呼び出して描画のきっかけを与える。
- kaiju - メッセージ#開局
kaiju から 卓情報 を初期化し、Majiang.Player#action_kaiju を呼び出し応答を返す。
- qipai - メッセージ#配牌
qipai から 卓情報 を設定し、Majiang.Player#action_qipai を呼び出し応答を返す。
zimo から 卓情報 を設定し、Majiang.Player#action_zimo を呼び出し応答を返す。 gangzimo が真の場合は槓自摸を表す。
- dapai - メッセージ#打牌
dapai から 卓情報 を設定し、Majiang.Player#action_dapai を呼び出し応答を返す。
- fulou - メッセージ#副露
fulou から 卓情報 を設定し、Majiang.Player#action_fulou を呼び出し応答を返す。
- gang - メッセージ#槓
gang から 卓情報 を設定し、Majiang.Player#action_gang を呼び出し応答を返す。
- kaigang - メッセージ#開槓
kaigang から 卓情報 を設定する。
- hule - メッセージ#和了
hule から 卓情報 を設定し、Majiang.Player#action_hule を呼び出し応答を返す。
- pingju - メッセージ#流局
pingju から 卓情報 を設定し、Majiang.Player#action_pingju を呼び出し応答を返す。
- paipu - 牌譜
Majiang.Player#action_jieju を呼び出し応答を返す。
- 返り値 - Majiang.Shoupai
自身の手牌を返す。
- 返り値 - Majiang.He
自身の捨て牌を返す。
- 返り値 - Majiang.Shan 互換のオブジェクト
牌山を返す。
- 返り値 - 牌の配列
自身の手牌がテンパイしている場合、和了牌の一覧を返す。 テンパイしていない場合は空の配列を返す。
- shoupai - Majiang.Shoupai
- 返り値 - 牌 の配列
ルール と 卓情報 を使用して Majiang.Game#static-get_dapai を呼び出し、shoupai が打牌可能な牌の一覧を返す。
- shoupai - Majiang.Shoupai
- p - 牌
- 返り値 - 面子 の配列
ルール と 卓情報 を使用して Majiang.Game#static-get_chi_mianzi を呼び出し、shoupai が p でチー可能な面子の一覧を返す。
- shoupai - Majiang.Shoupai
- p - 牌
- 返り値 - 面子 の配列
ルール と 卓情報 を使用して Majiang.Game#static-get_peng_mianzi を呼び出し、shoupai が p でポン可能な面子の一覧を返す。
- shoupai - Majiang.Shoupai
- p - 牌
- 返り値 - 面子 の配列
ルール と 卓情報 を使用して Majiang.Game#static-get_gang_mianzi を呼び出し、shoupai がカン可能な面子の一覧を返す。 p が指定された場合は大明槓、null の場合は暗槓と加槓が対象になる。
- shoupai - Majiang.Shoupai
- p - 牌
- 返り値 - boolean
ルール と 卓情報 を使用して Majiang.Game#static-allow_lizhi を呼び出し、shoupai からリーチ可能か判定する。 p が null のときはリーチ可能な打牌一覧を返す。 p が牌のときは p を打牌してリーチ可能なら true を返す。
- shoupai - Majiang.Shoupai
- p - 牌
- 返り値 - boolean
ルール と 卓情報 を使用して Majiang.Game#static-allow_hule を呼び出し、shoupai で和了可能か判定する。 p が null のときはツモ和了可能なら true を返す。 p が牌のときは p でロン和了可能なら true を返す。
- shoupai - Majiang.Shoupai
- 返り値 - boolean
ルール と 卓情報 を使用して Majiang.Game#static-allow_pingju を呼び出し、shoupai で九種九牌流局可能か判定する。
- shoupai - Majiang.Shoupai
- 返り値 - boolean
ルール と 卓情報 を使用して Majiang.Game#static-allow_no_daopai を呼び出し、shoupai で「テンパイ宣言」可能か判定する。
以下のメソッドはサブクラスで実装する必要がある。 (実装例: @kobalab/majiang-ai)
- kaiju - メッセージ#開局
kaiju を確認し空応答する処理を実装する。
qipai を確認し空応答する処理を実装する。
zimo から適切な応答(打牌・槓・和了・倒牌)を選択し返す処理を実装する。 gangzimo が真の場合は槓自摸を表す。
- dapai - メッセージ#打牌
dapai から適切な応答(副露・和了・倒牌)を選択し返す処理を実装する。
- fulou - メッセージ#副露
fulou から適切な応答(打牌)を選択し返す処理を実装する。
- gang - メッセージ#槓
gang から適切な応答(打牌・槓・和了)を選択し返す処理を実装する。
- hule - メッセージ#和了
hule を確認し空応答する処理を実装する。
- pingju - メッセージ#流局
pingju を確認し空応答する処理を実装する。
- paipu - 牌譜
paipu を処理し空応答する処理を実装する。