麻雀の副露判断アルゴリズム(2) - koba::blog で「特定の役への向聴数」を計算する方法を導入したが、バグがあるようである。例えば下記の2つの牌姿の(索子の)混一色への向聴数は
- 2向聴
- 3向聴
であるが、ともに2面子2搭子のため、同一の向聴数と判定してしまう。
続きを読む麻雀の副露判断アルゴリズム(2) - koba::blog で「特定の役への向聴数」を計算する方法を導入したが、バグがあるようである。例えば下記の2つの牌姿の(索子の)混一色への向聴数は
であるが、ともに2面子2搭子のため、同一の向聴数と判定してしまう。
続きを読む電脳麻将 は HTML5 + CSS3 + JavaScript で動作するフロントエンドのWebアプリです。サーバ側にコードはありません。ですので今までは Node.js を使わずに開発していました。思考アルゴリズムの検証でAI同士に自動対戦をさせる場合もブラウザ上で実行していたのですが、1000半荘の対戦に8時間以上かかるようになり、さすがにブラウザ上での実行は厳しくなってきました*1。
そこで Node.js を導入することにします。せっかく導入するのですから以下の方針とします。
*1:ブラウザ上で実行する場合、ブラウザが画面の前面に出ていないと実行がスリープしてしまうので長時間の試験がやりにくい。と思っていたのですが、実はヘッドレスChromeで解決できそうです。ですが今後のことを考え、この機会にNode.js化します
麻雀の打牌選択アルゴリズム(4) - koba::blog から 麻雀の副露判断アルゴリズム(5) - koba::blog まで打牌選択と副露判断に打点を考慮するよう改良してきたが、今回で最終回。一色手を狙わせてみる。
前回のアルゴリズムで1000半荘対局させると一色手(混一色、清一色)の出現率が 1.5% なのであるが、天鳳鳳凰卓の一色手出現率は 4.8% であり、かなり差がある。一色手を狙う場合は序盤に孤立字牌を残す打ち方をするべきなので、麻雀の打牌選択アルゴリズム(3) - koba::blog で導入した孤立牌の評価値に手を加えてみる。
続きを読む麻雀の打牌選択アルゴリズム(8) - koba::blog までのアルゴリズムで打牌の選択に打点を考慮した評価値*1を使用するよう修正したが、今回はその評価値を副露判断にも使用するよう改良する。
副露判断に評価値を使用することで以下の効果が期待できる。
*1:期待値のような物であるが確率を使用していないので「評価値」としている
ドラ
から何を切るか?*1
候補となるのは、打 (待ち 16枚)、打 (待ち 16枚)。麻雀の副露判断アルゴリズム(4) - koba::blog までのアルゴリズムでは がポンできることを重視し だが、麻雀の打牌選択アルゴリズム(7) - koba::blog のアルゴリズムは2向聴以降は鳴きを考慮しないため を選択してしまう。
今回は2向聴以降も鳴きを考慮できるよう改良する。
*1:麻雀 傑作「何切る」300選 での正解は
麻雀の打牌選択アルゴリズム(6) - koba::blog でシャンテン戻しを仮実装したが、問題が残っている。
のテンパイから を切って1向聴に戻してしまう。また
の国士無双テンパイからも をツモ切りしてしまう。今回はこの問題を修正する。
麻雀 傑作「何切る」300選 からの出題。*1
ドラ
から何を切るか?
打 か でテンパイだが、三色、一通の可能性を残し、打 でテンパイとらずが正解のようだ。今回はこのシャンテン戻しについて検討する。
*1:すでに続編の 麻雀 定石「何切る」301選 が出ているが、中国では手に入らぬ😢