シャンテン数 小粒プログラミング

#10 国士無双とチートイツのシャンテン数を算出する

更新日:

Javascriptで遊ぶ麻雀小粒プログラミング
チートイツと国士無双のアガリ判定とシャンテン数を算出する処理を紹介します。

プログラムの解説と実行

前回のお題の通常手のアガリとシャンテン数を算出するに引き続き、国士無双とチートイツのアガリとシャンテン数を求める処理を紹介します。

国士無双のシャンテン数を求める

国士無双は通常手のように「4メンツ+1雀頭」を集める手役ではありません。チートイツと同様、特殊役という扱いになります。したがって通常手とは違う方法でアガリやシャンテン数を求める必要があります。国士無双のシャンテン数は次の計算式で求めることができます。

国士無双のシャンテン数を求める式
シャンテン数 = 13 - ヤオチュウ牌の数 - 雀頭(ダブっているヤオチュウ牌を1枚)

通常手のシャンテン数と同じく、テンパイは「0」でアガリは「-1」になります。

通常の国士無双のテンパイ(雀頭がある)
国士無双十三面待ち(雀頭が無い)

チートイツのシャンテン数を求める

チートイツは7個のトイツが集めるとアガリになる手役です。以下の特徴を押さえてアガリやシャンテン数を算出するプログラムを作ります。

  1. 7種7個のトイツを集める
  2. テンパイは「6種6トイツ+1種単騎待ち」になる
  3. 待ちは必ず単騎待ちになる
  4. 最高のシャンテン数は6シャンテン
  5. 4枚チートイツは基本的に禁止
チートイツのテンパイ。必ず単騎待ちになる

次の手牌はが3枚あるため、単騎待ちのテンパイにはなりません。イーシャンテン扱いになります。トイツ6種と被らない牌を引いてくるまではテンパイになりません。

チートイツで4枚待ちになる手牌例

以上の特徴を踏まえ、チートイツのシャンテン数は次の計算式で求めることができます。

チートイツのシャンテン数を求める式
シャンテン数 = 6 - トイツの数 - (7 - 牌の種類の数)

通常手のシャンテン数と同じく、テンパイは「0」でアガリは「-1」になります。

リンク牌理/牌効率学習ツール




国士無双とチートイツのシャンテン数を求めてみよう

手牌を作ってプログラムの動作を確認してみましょう。操作は簡単です。牌をクリックすると下のパネル内に牌が追加されていくます。[シャンテン数を調べる]ボタンを押すとシャンテン数を調査する手順が表示されます。




手牌:0牌(最大入力数は14牌)
シャンテン数:テンパイは「0」、アガリは「-1」になります。

プログラムの修正や最新版情報は動作チェックとバグ取りをしっかりやろう~通常手編に掲載しています。ここで紹介しているプログラムが新しくなっていることがありますので、チェックしてみてください。



JavaScriptソースコード

本記事で紹介したサンプルプログラムをダウンロードできます。

ダウンロードをする前にお読みください

  • サイトで紹介している記事の内容や公開しているプログラムの動作は100%保障するものではありません。
  • 当プログラム使用による如何なる不具合やトラブル、損害の責任も負いかねます。
  • 当プログラムは断り無く内容が変わることがあります。
  • 当プログラムを別サイトで配布することは禁止します。
  • サポートはいたしません。
  • 自己責任にてご利用くださいませ。

以上をご確認の上、プログラムのダウンロードをお願いいたします。

※今回は麻雀C言語プログラム集様のコードを、ほぼそのままJavaScriptに移植する形になりました。この場を借りてお礼申し上げますm(_ _)m

サンプルプログラムのソースコード

ソースコードは折りたたんであります。[+]を押すと、折りたたまれたソースコードが開きます。[-]を押すと、コードは折りたたまれます。

program_010.jsを開く
paiput.jsを開く
program_010.cssを開く

おすすめレンタルサーバー

エックスサーバー|高速・高機能レンタルサーバー

オールSSDの快適ハイスペック環境」「国内管理、大容量バックボーン」「独自SSLが無料」「FastCGIなどの高速化機能」「最新のPHP7を実装」など、高機能・高コストパフォーマンスなレンタルサーバーです。※当サイトも「エックスサーバー」で運用しています。

 

独自ドメインプレゼントキャンペーン情報

キャンペーン期間中にサーバーアカウントを契約すると、独自ドメインが1つもらえます。しかも、更新料も無料。運用コストを軽減します。

期間は、2017年10月16日より2017年11月30日まで、お見逃しなく。

-シャンテン数, 小粒プログラミング
-

Copyright© 麻雀ツール点数計算ラボ , 2017 All Rights Reserved.