Edited at

麻雀の点数判定アプリを作る#1


昨年こんなアプリがリリースされました

[麻雀の得点計算が簡単に!「麻雀カメラ」iOS向けに配信開始]

https://game.watch.impress.co.jp/docs/news/1129819.html

「麻雀のルールは知ってるけど点数計算はよく分からない」

「満貫以上の点数なら分かる」

そんな麻雀ビギナーあるあるがこれで解消されるなあと思ったんですが,精度が非常に悪いと不評で,App Storeの評価値は1.7/5となっています.これはひどい.


じゃあもっと精度のいいアプリ作ります

開発ど素人の僕ですが,「麻雀カメラ」は画像から牌を検出し,役や点数を判定するアルゴリズムに入力しているんだなーくらいの検討はつきます.OpenCVの画像認識は少し触ったことがあったので,頑張れば僕でも作れるんじゃないかと開発に乗り切りました.後に分かるのですが,ど素人の僕にはここで地獄の蓋が開いたとは分かりません.


おおよその見当と流れ



  • OpenCVで和了画像読み取り


    • 前処理を行い個々の牌の輪郭検出

    • 配列に格納し点数計算アルゴリズムに入力する



  • 受け取った配列を基本和了形である4面子1雀頭に変形


    • 条件分岐を用いて役と点数を判定

    • 画像からは得られない偶然役を付加するコンフィグを設定



漠然極まりないけれど,この土台は変わらないはず.

次回より,細かい部分を見ていくことにする.

※2019/01/09追記

現在は異なる手法で開発を進めていますが,備忘録として当時考えていたことをまとめています.追いつくにはもう少し時間がかかりそうです.


麻雀が分からない方のために

[麻雀ルール]https://ja.wikipedia.org/wiki/麻雀のルール

Wikipediaのリファレンスが分かりやすいので参考になります.

今後,麻雀用語がかなりの頻度で登場することが想定されますので一読されることをお勧めしますが,一度で理解することは困難と思います.ゆえに,そういった方でも僕の思考過程や試行の意図が分かるような記述を心がけます.