All-in or Fold ゲーム

確率論

概要

 前回の曲でPush or Foldイベントと知らずにプレイしているプレイヤーを題材にしたり、最適ヘッズアップオールインの稿でAll-inかFoldかの2択のゲームを開発したいと述べていたが、実際にα版を開発したので紹介しておこう。簡略的なゲームであるが、NPCが比較的人間らしい選択をしてくるので、楽しめるゲームになっているんじゃないかと思う。プリフロップでAll-inかFoldのみを選択するゲームはAll-in or Fold (AOF) とかPush or Fold (POF) と言われる。

 通常のテキサスホールデムとのルールの違いは以下の通りである。

  1. すべてのプレイヤーはプリフロップでAll-inかFoldの二択の意思決定を行う。
  2. スタックは毎回一定量にリセットする(勝敗で増減したスタックはそのまま用いず、常に同じスタックで勝敗を競う)
  3. プレイヤーの数は3,4人であることが多いようである。2人だったり、人数が多いと運ゲーの要素が強くなりそうに見える。
  4. 他のルールはテキサスホールデムと同様である。

プレイヤー以外はNPCなので、プレイヤーのスタックは余裕を持たせた上で、リセットしないようにすれば、自分がどれだけチップを獲得できたかを認識できるだろう。指定されたスタックより多い量のチップを持っていれば、プレイヤーの戦略は指定されたスタックの場合と同じものになる(Effective Stackが指定されたスタックになるため)。

 対戦相手となるNPCについて、過去の記事で考察したモデルも含めて、いくつか実装した。具体的には以下の通りである。

  1. Calling Station: 常にAll-inしてくる
  2. Random: 一定の確率でFoldするが、手札の強さを考慮しない
  3. Fixed Hand Range: 勝利確率が高い順に指定したVPIP分だけAll-inしてくる
  4. Preference Order Model: モデルパラメータに応じて様々なハンドレンジを指定できる
  5. Game Theory Optimal: 理論的に最適なハンドレンジでAll-inしてくる

1.と2.は比較的弱い相手であり、ある程度適切な手札を選んでいれば平均的には勝つことができるだろう。3.は”VPIPとハンドレンジ”という稿で考察した勝利確率が高い順に一定のVPIPになるようにAll-inしてくるモデルである。4.は最近の投稿にあった”プリフロップにおける行動モデル”のAll-in or Fold版であり、選好順序に応じた手札を選択してくる。5.は”最適ヘッズアップオールイン”で計算したCFRで計算したハンドレンジを採用するモデルである。このモデルは現状プレイヤーが2人の場合しか対応していないが、そのうち多人数についても対応する予定である(将来的にこれを考察した投稿を作成するつもりである)。関連する投稿のリンクをまとめて貼っておく。

開発したゲーム

 開発したゲームのリンクは以下の通りである。基本的な設定項目などは通常のテキサスホールデムのゲームの設定と同様である。ただし、ゲームの性質上、プレイヤーの数を変動にすることが難しいので、プレイヤーの数は設定で固定しか選べないようにしている。

デフォルトの設定でNPCのモデルをGame Theory Optimalにしているが、対戦してみると意外にもあまり強い気がしない(弱くもないけど)。プレイヤーの人数が2人だとハンドレンジを比較的容易に覚えられるし、最適なレンジを選んでいればただの運ゲーになってしまうためだろうと推測される。

今後の拡張

 PCでプレイするにはゲームが簡易的であるように見える。今後の目標で説明した通り、モバイルゲームの形にしてスマホでポチポチプレイできるようになれば、ちょっとした暇つぶしに遊べるゲームになるかもしれない。テキサスホールデムのPush or Foldの練習にもなるだろう。同様のモバイルゲームはすでにいくつか存在するようであるが、対戦相手の行動モデルに特徴を持たせることで差別化を図ることはできるだろう。モバイルゲームは時間がかかるだろうが、そのうち開発していくつもりである。

 また、これまでのゲームの実装では、UIがほぼプログラムの内部構造をそのまま表示する形式になっていたため、ゲームのUIっぽくなかったかもしれない。今回は少しだけゲームのUIに近い形式にしたということで、今後はこの形式にゲームの画面を修正していこうと思う。テキサスホールデムやオマハホールデムなどの画面も、NPCのモデルを実装する際にこの画面にすることで若干プレイしやすくなるかもしれない。