「何切るシミュレーター」は入力された手牌の受入枚数、点数期待値、和了確率、聴牌確率を計算するツールです。
点数期待値において、50点未満の差はほぼ同等と考えてよいです。 例えば、手牌「123m999p789s北北北白發」において、白のほうが裏ドラ表示牌が1枚多いため、白単騎だと5032点、發単騎だと5017点で15点差になります。 このように、数十点というのは裏ドラ表示牌が1枚多いかどうか程度の差しかありません。
巡目があとになるほど、和了確率、聴牌確率が減少しますが、向聴戻しの打牌ほど早く確率が減少していくため、序盤では向聴戻しが有利な結果が出ても、中盤以降はそうでない打牌と優越が逆転します。 結果一覧の下のグラフで、各巡目ごとの期待値、和了確率、聴牌確率の推移を確認できます。
他家が存在しないため、ロン和了が存在しません。そのため、幺九牌待ちのほうが和了やすいといったことは考慮されません。
副露 (ポン、チー、暗槓、明槓、加槓) は考慮しません。 そのため、役牌や染め手など鳴かないと成立しづらい役の価値が過小評価されます。 ただし、何切るを考える時点で、副露している手牌は設定可能です。
向聴戻しは考慮されます。ただし、3向聴から4向聴及び和了形から聴牌への向聴戻しは行いません。
手変わりは考慮します。
「赤牌自摸」にチェックが入っている場合、赤牌を自摸する可能性を考慮します。
「裏ドラ」にチェックが入っている場合、裏ドラが乗る可能性を考慮します。 ドラ表示牌が1枚の場合は、裏ドラが乗る確率を厳密に計算します。2枚以上の場合は平和形の場合に裏ドラが乗る確率の統計データを元に近似値で計算します。
「ダブル立直」「一発」「海底撈月」にチェックが入っている場合、それぞれの役が成立する可能性を考慮します。
「手牌の種類」が「一般手」の場合、七対子の和了が考慮されません。そのため、一般手と七対子の両天秤を見るべき手牌で正着が選ばれない可能性があります。 実装上可能であれば、この問題は今後対応する予定です。
手牌が3向聴以下の場合、デフォルト設定では、聴牌まで「向聴数 + 1枚」交換可能という条件で和了りまでのすべてのパターンを探索します。4向聴以上の場合は有効牌のみ計算します。
積み棒、不聴罰符、立直棒は考慮しません。
ロンや副露がない等4人麻雀とは異なる条件でのシミュレーション結果であることに留意する必要があります。 ただし、プログラムの不具合の可能性もありますので、不自然な結果が表示された牌姿をコメント欄で教えていただければ、こちらでも確認します。
基本的な考え方は手牌の点数期待値の計算方法に記載しています。また、アプリケーションのソースコードは GitHub のレポジトリmahjong-cppに公開しております。時間があるときにアルゴリズムの詳細について、文章で整理しようと思います。
更新予定 / GitHub: mahjong-cpp / 作成者: pystyle / 牌画像: 麻雀豆腐
ドラはドラ表示牌で指定するので注意してください。槓ドラも含め、最大5枚まで設定できます。
手牌、ドラ表示牌以外の場に見えてる牌を減らすことができます。