全ツ型四人麻雀計算機その30・ベタ降りの挙動1・放銃時失点
2016-12-30(Fri)
前回までで平場における全押しはできたので、次は自分がベタ降りしたときの挙動をやっていきます。
初めは「現在最も安全な牌を選択して切る」という簡単なアルゴリズムにします。
具体的には
Σ((プレイヤーiの聴牌率)×(切る牌のプレイヤーiへの放銃率)×(その牌が当たった時の放銃時失点))
(Σはi=1~3の和)
が最小となるような牌を選択します。
これだと、以下の要素が入っていませんが、それはいったん出来上がってから考えることにします。
・対子落とし暗刻落としによる安全牌の水増しが入っていない。(むしろ暗刻筋効果で同じ無筋の中でも後回しにされるまである。)
・リーチ者一人、他二人非リーチ面前の状況で、同じ現物の中でも他二者にも確実に通る牌が優先されるので、2軒目のリーチに備えて共通安牌を後回しにするという発想がない。
後は掛け算の要素のうち、3つ目の当たった時の失点については、
1打ごと、14牌すべてを毎回いちいち計算するのが計算時間的に大変だと思われるので、平均失点の実測値をそのまま使うことにします。
↓この数値です。

牌ごとの比較ができれば十分なので(せいぜい親への放銃や役牌とかドラで当たればちょっと高いという程度)、まぁ毎回精密に計算しなくてもいいでしょう。
これで必要になりそうなパラメータは出そろったと思うので、ベタ降りの挙動を作ってみましょう。
それができたら途中押しについてもそんなに手間ではないと思うので、それで平場判断が一通りできることになります。
初めは「現在最も安全な牌を選択して切る」という簡単なアルゴリズムにします。
具体的には
Σ((プレイヤーiの聴牌率)×(切る牌のプレイヤーiへの放銃率)×(その牌が当たった時の放銃時失点))
(Σはi=1~3の和)
が最小となるような牌を選択します。
これだと、以下の要素が入っていませんが、それはいったん出来上がってから考えることにします。
・対子落とし暗刻落としによる安全牌の水増しが入っていない。(むしろ暗刻筋効果で同じ無筋の中でも後回しにされるまである。)
・リーチ者一人、他二人非リーチ面前の状況で、同じ現物の中でも他二者にも確実に通る牌が優先されるので、2軒目のリーチに備えて共通安牌を後回しにするという発想がない。
後は掛け算の要素のうち、3つ目の当たった時の失点については、
1打ごと、14牌すべてを毎回いちいち計算するのが計算時間的に大変だと思われるので、平均失点の実測値をそのまま使うことにします。
↓この数値です。

牌ごとの比較ができれば十分なので(せいぜい親への放銃や役牌とかドラで当たればちょっと高いという程度)、まぁ毎回精密に計算しなくてもいいでしょう。
これで必要になりそうなパラメータは出そろったと思うので、ベタ降りの挙動を作ってみましょう。
それができたら途中押しについてもそんなに手間ではないと思うので、それで平場判断が一通りできることになります。
スポンサーサイト