花札の「こいこい」を題材にしたビデオゲームは、これまでに数多く制作されてきました。
例えば、
- 団地で花札 〜奥さん米屋ですよ〜
- 華シリーズ
- AVシリーズ
など、アーケード系(アダルト寄り)のイメージが個人的には強いのですが、
- みちのく秘湯恋物語 美少女花札紀行(PlayStation)
- ホロの花札(Nintendo Switch)
といった全年齢向けのタイトルも数多く存在します。
(硬派な作品も少なくありません)
個人的には「ホロの花札」は演出面がよくできていておすすめです。
(※ホロライブ自体には詳しくありませんが)
麻雀やトランプと比べるとややマイナーなジャンルではありますが、海外の Hanafuda Discord で共有されているリストによると、花札のビデオゲームは300本以上存在するようです。
花札AIの現状
しかし、これらの作品におけるCPU戦(AI)に注目すると、「人間的に強い」と感じられるAIは稀です。
多くのタイトルでは、
- 相手の手札や山札を参照する「透視」的な挙動
- プレイヤーの配牌を意図的に不利にする調整
といった、現実世界で言えば「イカサマ」に相当する仕組みによって難易度調整が行われています。
もちろん、これは単純に否定できるものではありません。
天賦値が高すぎる
その理由の一つは、花札というゲーム自体が強く「運」に依存している点にあると考えられます。
私はこれを「天賦値が高い」と呼んでいます。
花札は囲碁や将棋と比べると明らかに運の影響が大きく、麻雀と比較してもなお運の比重が高いゲームです。
整理すると以下のような関係になります:
囲碁・将棋 < 麻雀 < 花札 < ポーカー
- 天賦値が高いゲーム → ギャンブル性が強い
- 天賦値が低いゲーム → 競技性が高い
この特性を踏まえると、「配牌で難易度を調整する」という設計は一定の合理性があります。
しかし、プレイヤー体験としては「ただ運が悪いだけ」と感じられやすく、その調整が「ゲームとしての満足度」に直結するとは考えにくいです。
実際、Steam で販売されている花札ゲームのレビューを見てみると、このイカサマによるランク設計を理由に「低評価」をしている方の意見が多くあります。
推論アルゴリズムと計算量
花札は麻雀ほど選択肢が多いゲームではありませんが、それでも「全局面を読む」タイプのアルゴリズムを実装するには依然として巨大な探索空間を扱う必要があります。
任天堂ルールに基づく場合、概算のゲーム木サイズは以下の通りです:
- 1ラウンド:約 10^90〜10^94
- 12ラウンド合計:約 10^1100
参考値として:
- 将棋:約 10^226
- チェス:約 10^123
将棋やチェスはもちろん、花札ですら「総当たり法」で最適解を求めることは、現実的ではありません。
モンテカルロ法の可能性
そこで有効なのがモンテカルロ法です。
実際に花札の1ラウンドを対象にモンテカルロ推論を行ったところ、現代のCPUであれば1秒未満で十分な精度の推論が可能でした。
一方で、MC68030エミュレータを用いて低速CPU環境で同じアルゴリズムを実行してみたところ、1手あたり1分以上かかるケースもあり、実用的ではありません。
このことから、
- 現代のPC(~1GHz以上)
- PS4 / Nintendo Switch 世代以降の家庭用機
あたりが「実用的なAI」を動かすための現実的な下限と考えられます。
つまり、1990年代のゲームで高度なAIが存在しなかったのは、設計の問題ではなく「計算資源の制約」が主因だったと考えられます。
花札はじゃんけんと同等か?
しばしば、
花札はじゃんけんと同程度の運ゲー
という意見を見かけます。
しかし、じゃんけんのゲーム木は単純に
3^2
であり、花札とは比較にならないほど単純です。
したがって、「じゃんけんと同等」と定量的に評価することは難しいと言えます。
一方で、現代の花札ゲームにおいても「推論ベースで強いAI」がほとんど存在しないのも事実です。
例えば、ホロの花札(2025年発売)でも、私が観察した限りでは「推論強度」ではなく「配牌バランス」による難易度調整が中心に見えました。
Open Hanafuda AI
そこで、モンテカルロ推論ベースの強い花札AIとして Open Hanafuda AI を開発することにしました。
https://github.com/suzukiplan/open-hanafuda-ai

MITライセンスで公開しているため、花札ゲームを開発する際の思考エンジンとして利用できます。
なぜモンテカルロ法?
囲碁や将棋のように分岐が極端に多いゲームでは、モンテカルロ法だけで最強レベルに到達するのは困難です。
そのため、昨今のAI開発の主流はディープラーニングです。
一方で、ディープラーニングには以下の課題があります:
- 思考過程の再現性が低い
- 挙動の説明が困難
これに対して花札は、
- 行動選択肢が比較的少ない
- 状態空間が限定的
という特徴があるため、
モンテカルロ + 明示的戦略
という構成の方が、より「強いAI」に到達できる可能性があると考えました。
以下の記事によると、麻雀AIにおいてはモンテカルロ法(特にフルプレイアウト型)は計算コストが非常に高く、実用的な速度での意思決定が難しいとされています。
https://qiita.com/kackytw/items/d6a9f9d3ec1765e9f9ca
麻雀は不完全情報かつ分岐数が非常に多く、1手あたりのシミュレーションコストが大きいため、「局面推移を読む」用途には不向きです。
例えば、「捨て牌を選ぶ行動数」(※リーチ判断を除く)だけを見ても両者には大きな差があります:
- 麻雀: 14
- 花札: $n_t = 8 - t \quad (t = 0,1,2,3,4,5,6,7)$
このように、花札は麻雀と比べて1手ごとの選択肢が少なく、しかも手番が進むほど分岐数が減っていくため、モンテカルロベースの推論を現実的な計算量で回しやすいです。
※現代のPCであれば
強化アプローチ
本プロジェクトでは、以下の構成でAIを強化しています。
- Normal:静的評価のみで手を選択するベースラインAI
- Hard:モンテカルロ法を用いたAI
この2つを対戦させ、Hard の対 Normal 勝率を最大化する方式で改善を繰り返しています。
初期の頃の勝率は約10%でしたが、改善を重ねた結果、現在は約60.3%まで向上しています。(2026年3月時点)
その過程で、「花札(こいこい)の本質」とも言えるいくつかの知見が得られました。
Hard AI では、以下の公開情報:
- 自分の手札
- 場札
- 自分と相手の取札
- 残りの手札数
以下の非公開情報(推論):
- 相手の手札
- めくられていない山札
をもとに、
- Greedy:攻撃寄り
- Balanced:中間
- Defensive:防御寄り
という3つの戦略モードを動的に切り替えています。
一方、Normal AI は常に最善手を追求する Rapacious(貪欲)戦略 を採用しています。
この構成から、
「Normal 相手であれば、防御寄りに徹することで安定して勝てるのではないか?」
という仮説を立てました。
しかし実際には、この戦略は 明確に勝率を下げる悪手 となることが分かりました。
ログからその原因を分析した結果、
「劣勢時ほど、むしろ貪欲に攻める必要がある」
という性質が見えてきました。
この知見を踏まえ、大差でビハインドしている劣勢局面では Hard AI も Rapacious 戦略へ切り替えるよう実装したところ、収束値ベースの勝率が大幅に改善しました。
収束値ベースの勝率は、固定乱数シードで 1000 games(12,000 rounds)を実行した結果から算出しています。
少なくとも、この挙動はじゃんけんのような単純な確率ゲームには見られません。
今後の方針
現在は、
- 対戦ログの可視化
- 弱点の特定
- Issue単位での局所改善
というサイクルで開発を進めています。
このアプローチで頭打ちになった場合は、別の強化手法(探索戦略の変更や評価関数の拡張など)も検討する予定です。
どうせ作るなら、「世界最強の花札AI」を目指したいと思っています。