作りました。七対子、国士以外の判定です(二つは簡単すぎますよね)。また、流し満貫ものぞきます。
パターン列挙アルゴリズム
与えられた手牌から作れる4面子1雀頭を可能な限り列挙するアルゴリズムです。
以上のようにして全パターンを列挙します。槓子に関してはカンした時点で槓子となるので、列挙する中から省いておきました。また、ポン、チーも鳴いた時点で面子となり固定されるので、その2つも2. の「残りの牌」から除きます。
列挙したら
列挙したらあとはそれぞれのパターンの役を調べるだけですし、それは簡単ですよね。
コード
具体的なコードは書きません。理由としては牌のデータ構造によって異なってくるからです。
僕の作ったデータ構造でのコードは、新居のネットがつながったら、ここにあげておきます。
追記: つながったので載せておきます。
pandanoir/mahjongg