麻雀最善手思考エンジン
【MT-Engine】B-Type
![]()
エンジンはどう考えて打っているのでしょう
| あれ?なんでだろ? |
「最強」と銘打ってハバカらないS社、神のような極上ストーリーをカタる販売数トップのA社。
これは!と思って買ってみたら・・・「あっれぇ?!」 なんででしょうねぇ。
リーチ麻雀なら、少々ヘタでもそれほど大きな問題にはなりませんが、ブー麻雀の場合、S社やA社クラスの思考エンジンでは、勝負そのものが、まったくつまらないものになってしまいます。
さあ、どうしたものでしょう。
| まずは、攻撃だけを考える |
そこで、とりあえず、攻撃だけを考えるアルゴリズムを考えました。
その時点の手牌から可能な、すべての変化形を弾き出し、そのシャンテン数や可能性、そして、最終得点を計算し、それらを組み合わせて評価し、現シャンテン数と、ひとつ下のシャンテン数の両方で集計し、それぞれ不要度の高い順に手牌を並べます。
| 次に、防御だけを考える |
攻撃については横に置いておいて、次に防御だけを考えます。
場に見えている牌と自分の手牌、それから狙い役を加味して、手牌を安全な順に並べます。
そして、これを対三家別々に計算評価し、さらに自家に対しても同様の評価をしておきます。
| 各家別に状況評価する |
次に、その局の開始時点で、各家が何をしたいか、すべきか、また、してはならないか、ということを考えます。
これは、各家別々に、そして、それぞれ対三家への評価をします。つまり、合計4x3=12の評価をします。
| 戦況に合わせて状況評価する |
そして、刻々と状況変化する一局の対局中、自家の手役の進行度と得点を中心に据え、対する各家の状態を比較し、それに開始時点での状況評価をふまえた上で、それぞれ各家別に評価をします。
| 集まった情報を元に判断する |
以上4点の情報を元に、自家の各家に対する方針を決定します。
おおまかに3つ、全ツッパ、回し打ち、ベタオリ、のいずれかに決定します。
また、この時点で、リーチと副露(フーロ)についても方針を決定します。
リーチや副露に際して、先に評価した他家から見た自家の危険牌情報も検討します。
| 攻撃と守りについて |
攻撃は、状況評価を元に、狙うべき方針、つまり、得点とスピードのバランスを考え、現在のシャンテン数で目的得点に達しなければ、シャンテン数を下げた攻撃評価を採用し、捨て牌を決定します。
また、堅く守るべき状況下では、守備評価だけを考えて捨て牌を決定します。
| 回し打ちについて |
各家の危険レベルの評価によって、危険度の高い方から、打牌禁止枚数を決定し、攻撃から考えた捨て牌が、この打牌禁止牌でなければ、そのまま打牌します。
もし、打牌禁止牌だったら、次善の捨て牌を検討し打牌します。
だいたいこんな感じの考え方を基本に、例外事例を加えながら、総合的に思考させています。
でも、まだまだ改善の余地も大きく、やっと、人間の邪魔にならず、まあまあ「お上手」になった程度なので、これからも、「強さ」よりも「うまさ」を中心に、ブラッシュアップしていこうと考えています。
| 前のメニューへ |