Yusuke

麻雀の和了形を求めるには

Tue Sep 12 2023
#開発
#麻雀

麻雀の役判定をしたことはあるでしょうか。
この記事では、麻雀の役判定において大切な和了形の判定について、どのように求めていくかを考えていきます。

和了形の判定の重要性

そもそもなぜ、和了形の判定は重要なのでしょうか。
いくつかのケースを見て考えていきます。

1. 二盃口と七対子

二萬:麻雀王国二萬:麻雀王国三萬:麻雀王国三萬:麻雀王国四萬:麻雀王国四萬:麻雀王国二筒:麻雀王国二筒:麻雀王国三筒:麻雀王国三筒:麻雀王国四筒:麻雀王国四筒:麻雀王国一索:麻雀王国一索:麻雀王国

この手では、2つの和了形を求めることができます。
対子7つの七対子形と、通常の順子4つ、対子1つの形です。
後者は二盃口となります。

どちらともとれますが、この2つの役が同時につくことはありません。
なぜなら、和了の形が異なるからです。

これを形を考えずに、単純にそれぞれの役があるかどうかでプログラムを組んでしまうと、「二盃口・七対子」という誤った答えを導いてしまいます。

2. 三暗刻と一盃口

次は刻子と順子の違いで見ていきます。

一萬:麻雀王国一萬:麻雀王国七筒:麻雀王国七筒:麻雀王国七筒:麻雀王国八筒:麻雀王国八筒:麻雀王国八筒:麻雀王国九筒:麻雀王国九筒:麻雀王国九筒:麻雀王国一索:麻雀王国二索:麻雀王国三索:麻雀王国

1つの和了形として、三暗刻があると思います。

一萬:麻雀王国一萬:麻雀王国
七筒:麻雀王国七筒:麻雀王国七筒:麻雀王国
八筒:麻雀王国八筒:麻雀王国八筒:麻雀王国
九筒:麻雀王国九筒:麻雀王国九筒:麻雀王国
一索:麻雀王国二索:麻雀王国三索:麻雀王国

三暗刻となるときの和了形は刻子3つ、順子1つ、対子1つであり、役として三暗刻(2翻)が付きます。

しかし、和了形はこれだけではありません。

一萬:麻雀王国一萬:麻雀王国
七筒:麻雀王国八筒:麻雀王国九筒:麻雀王国
七筒:麻雀王国八筒:麻雀王国九筒:麻雀王国
七筒:麻雀王国八筒:麻雀王国九筒:麻雀王国
一索:麻雀王国二索:麻雀王国三索:麻雀王国

順子4つ、対子1つの手とすることもできます。
この場合、一盃口(1翻)・純全帯么九(3翻)が付き、さらに和了牌によっては平和(1翻)が付く可能性もあります。

麻雀の点数の付け方は高点法といい、最も高い点数が採用されます。
そのため、適切な和了形を導き出す必要があるのです。

3. 三色同順と平和

最後に雀頭の違いで見ていきます。

一萬:麻雀王国二萬:麻雀王国三萬:麻雀王国一筒:麻雀王国一筒:麻雀王国二筒:麻雀王国三筒:麻雀王国三筒:麻雀王国四筒:麻雀王国四筒:麻雀王国一索:麻雀王国二索:麻雀王国三索:麻雀王国ロン:麻雀王国二筒:麻雀王国

この手は順子4つ、対子1つの和了として見ることができますが、1筒と4筒のどちらを雀頭とするかによって役が変わってきます。

1筒を雀頭とすると

一筒:麻雀王国一筒:麻雀王国
一萬:麻雀王国二萬:麻雀王国三萬:麻雀王国
二筒:麻雀王国三筒:麻雀王国四筒:麻雀王国
二筒:麻雀王国三筒:麻雀王国四筒:麻雀王国
一索:麻雀王国二索:麻雀王国三索:麻雀王国

となり、和了牌の2筒は両面待ちでの和了となるため、平和(1翻)・一盃口(1翻)となります。

一方、4筒を雀頭とすると

四筒:麻雀王国四筒:麻雀王国
一萬:麻雀王国二萬:麻雀王国三萬:麻雀王国
一筒:麻雀王国二筒:麻雀王国三筒:麻雀王国
一筒:麻雀王国二筒:麻雀王国三筒:麻雀王国
一索:麻雀王国二索:麻雀王国三索:麻雀王国

となり、三色同順(2翻)・一盃口(1翻)となります。(この場合は嵌張待ちとなるため、平和は付きません。)

このように、和了形の判定はとても重要なのです。

和了形の判定

和了形の求め方を考えていきます。
今回は以下のアプローチを採用してみました。

  1. 雀頭を抜き出す
  2. その雀頭に対して、刻子を抜き出す
  3. 順子を抜き出す
  4. 残った牌が0であれば和了形である

これをすべてのパターンで行っていきます。
すべてやる必要がある理由は先程の通り、より高い点になる形の可能性があるためです。

刻子の抜き出し方について

先程の例にもあった通り、刻子を刻子ではなく順子として扱う可能性もあるため、n個の刻子それぞれに対して刻子として採用するしないという判断を全パターン網羅する必要があります。
これは2ⁿ通りとなりますが、刻子は最大でも4つなため、2⁴ = 16通りと負荷になる数ではありません。

これら全パターンにつき、順子の抜き出しを行って余った牌がなければ1つの和了形となります。

実際にやってみる

先程のこの手を使って、和了形を求めてみたいと思います。

一萬:麻雀王国一萬:麻雀王国七筒:麻雀王国七筒:麻雀王国七筒:麻雀王国八筒:麻雀王国八筒:麻雀王国八筒:麻雀王国九筒:麻雀王国九筒:麻雀王国九筒:麻雀王国一索:麻雀王国二索:麻雀王国三索:麻雀王国

1. 雀頭を抜き出す

雀頭を抜き出してみます。雀頭候補は4つです。

一萬:麻雀王国一萬:麻雀王国
七筒:麻雀王国七筒:麻雀王国
八筒:麻雀王国八筒:麻雀王国
九筒:麻雀王国九筒:麻雀王国

ここで抜き出した各雀頭候補に対して以降のステップをそれぞれ行っていきますが、最後に残る牌がないのは1萬が雀頭のときのみなので、記事の都合上その場合のみ考えていきます。

2. その雀頭に対して、刻子を抜き出す

1萬を雀頭とした場合、刻子候補は3つあり、全8通りとなります。

七筒:麻雀王国七筒:麻雀王国七筒:麻雀王国
八筒:麻雀王国八筒:麻雀王国八筒:麻雀王国
九筒:麻雀王国九筒:麻雀王国九筒:麻雀王国
  1. 刻子はないと考える
  2. 7筒のみ刻子だと考える
  3. 8筒のみ刻子だと考える
  4. 9筒のみ刻子だと考える
  5. 7筒と8筒を刻子だと考える
  6. 7筒と9筒を刻子だと考える
  7. 8筒と9筒を刻子だと考える
  8. すべて刻子だと考える

この8通りすべてに対して、次のステップである順子の抜き出しを行っていきますが、最後に残る牌がないのは 1, 8 の場合のみなので、ここも記事の都合上、その場合のみ考えていきます。(刻子抜き出しが終わった後は順子の抜き出しのみしか行いません。)

3. 順子を抜き出す

先程のパターンから順子をできるだけ抜き出していきます。

2-1. 雀頭は1萬、刻子はないと考える

抜き出せた順子は以下の4つです。

七筒:麻雀王国八筒:麻雀王国九筒:麻雀王国
七筒:麻雀王国八筒:麻雀王国九筒:麻雀王国
七筒:麻雀王国八筒:麻雀王国九筒:麻雀王国
一索:麻雀王国二索:麻雀王国三索:麻雀王国

2-8. 雀頭は1萬、 7筒・8筒・9筒を刻子だと考える

抜き出せた順子は以下の1つです。

一索:麻雀王国二索:麻雀王国三索:麻雀王国

4. 残った牌が0であれば和了形である

2-1, 2-8ともに残った牌はなく、和了形とみなします。
この他にうまくいったパターンはないため、この手の和了形は2つあるということになります。

適切な和了形を求めるには

複数の和了形が存在する可能性は何度も触れた通りですが、実際に存在した場合にどれが適切と判断したら良いでしょうか。

適切な判断を下すには、それぞれの和了形に対して点数計算(符数・翻数)を行う必要があります。
翻数(役判定)のみでも、ほとんどの場合において適切な結果となりますが、極稀に翻数が同一で符数が異なる和了形が存在することがあります。

そのためすべてをカバーするには点数計算まで行い、一番高い点数の和了形を求めるしかないのです。

最後に

最後まで読んでいただきありがとうございました。
和了形は大切なステップの一つですが、その後の役判定のほうが何倍も大切です。
求めた和了形を上手く利用して、適切な役判定ができればなと思います。