麻雀プログラムの動作チェックは牌画を表示させることで格段に作業効率が向上するというお話です。動作チェックとバグ取りをしっかりやろう完成したと思ったプログラムでも思わぬバグが潜んでいることがあります。正常に動いていても正しい結果が返ってこないこともあります。シャンテンチェックプログラムにも次のような不具合が残っています。これら不具合は現在は解決済です(2015/03/18現在)不具合その1~手牌にカンツがあるケース雀頭で抜き出した残り2枚がメンツ候補としてカウントされたり、コーツで抜き出した残り1枚が単騎待ち牌になったりします。したがって正確なシャンテン数が算出されません。雀頭が無くカンツがあるケース雀頭とメンツ候補のトイツが同種牌になってしまう(解決済み)不具合その2~メンツがターツ扱いになる抜き出し方でメンツがターツ扱いになるパターンがあるのは当然なのですが、メンツとして認識されるパターンが出現しないのは深刻です。このケースも正確なシャンテン数を得ることができません。同種牌のシャンポン待ちができないようにした5枚目の単騎待ちができないようにしたコードを大幅に見直し修正。2015年4月3日現在シュンツの抜き方を大幅に見直し修正。再帰呼び出しで組み直したプログラムも紹介しています。シュンツ抜き取り漏れが解決しています。抜き出しパターンは手牌でも10通り以上、一色手になると50回以上の抜き出しパターンが現れることがあります。ここから最適化されたパターンを探しだすのは非常に困難です。シャンテン数が合っていてもそれが正しいのかを見極めるのは難しいです。いうわけで、抜き出しパターンを牌画で視覚化して見やすくなるようにしてみました。作業効率が飛躍的に向上しました。実際に運用した感想です。おかげで沢山のバグが見つかり、プログラムの見直しの機会を得ることができました(笑)実行してみよう今回は通常手のアガリとシャンテン数をチェックするプログラムの動作チェックをします。牌画をクリックして手牌を作り、[動作チェックする]ボタンを押してシャンテン数と抜き出しパターンを出力します。今後の展望プログラムは試行回数を減らしたりコードをスッキリさせるなど、見直す必要があると思います。今後も新しい不具合が見つかるかもしれません。チェックを重ねてより良いプログラムを公開できるように努めるつもりです。※任意の牌をクリックして消すことができます。並べ替えリセット動作チェックシャンテン数:テンパイは「0」、アガリは「-1」になります。メンツ等の抜き出しパターン:0回JavaScriptソースコード本記事で紹介したサンプルプログラムをダウンロードできます。サンプルプログラムのダウンロードダウンロードをする前にお読みくださいサイトで紹介している記事の内容や公開しているプログラムの動作は100%保障するものではありません。当プログラム使用による如何なる不具合やトラブル、損害の責任も負いかねます。当プログラムは断り無く内容が変わることがあります。当プログラムを別サイトで配布することは禁止します。サポートはいたしません。自己責任にてご利用くださいませ。以上をご確認の上、プログラムのダウンロードをお願いいたします。本プログラムはjQueryを組み込んだ状態じゃないと動作しません。アガリ判定とシャンテン数を算出する処理は「麻雀C言語プログラム集」のシャンテン数を参考にしています。サンプルプログラムのソースコードソースコードは折りたたんであります。[+]を押すと、折りたたまれたソースコードが開きます。[-]を押すと、コードは折りたたまれます。PHP7を実装」など、高機能・高コストパフォーマンスなレンタルサーバーです。※当サイトも「エックスサーバー」で運用しています。サイコロを振るプログラムを作る今回のお題は、乱数を利用してサイコロを振る処理を紹介します。牌山を生成する今回のお題は、牌山の生成と生成した牌山を乱数でシャッフルする処理を紹介します。MPSZ形式牌記号を牌姿に復元するMPSZ形式の牌記号を牌姿に復元するプログラムを紹介します。簡易シャンテン数当てゲームカンパについて公開しているWEBサービスは無料で利用できます。その代わり、開発費やサーバーの維持費を賄うためカンパを募集しています。noteでおひねりをすることができます。詳しくは牌理/牌効率ツールの公開にあててを御覧ください。利用者様が当ページのamazonのバナーやリンクを経由して買い物をすることで、私が紹介料を得る方法もあります。余計な費用は発生しません。ご協力いただけると助かります。タケオしゃんオンライン麻雀ゲーム天鳳の6代目天鳳位で、無料麻雀ツール点数計算ラボの管理人。麻雀ツールを開発・公開しています。麻雀ファンのスキルアップを応援しています。