今回から3回にわたって、うきでんポーカー(テキサスホールデム・リミットルール)の評価関数について解説していきたいと思います。
初回は、プリフロップの評価関数についてです。
正直なところ、この記事についてはどれくらい需要があるか分からないのですが、ポーカーゲーム開発やゲーム攻略の参考にしていただければ幸いです。
評価関数とは
評価関数(ひょうかかんすう、英: evaluation function)とは、コンピュータにゲームをプレーさせるソフトウェアを開発する際に使われるプログラミング技術のひとつで、ゲームの局面の状態を静的に評価し数値に変換する関数のこと。
Wikipedia より引用
Wikipedia には上記のように記されており、うきでんポーカーでは、コンピューターに適切なベット額やコール額を伝えるために使用しています。
プリフロップの評価関数
プリフロップでは、手札が2枚しかないことに加え、最初のラウンドのため、前ラウンドの状況考慮不要ということもあり、非常に単純な評価関数となっています。
評価関数の構成
各ハンドを上のような4つの数字が入った配列で評価します。
各数字の意味に関してはこのあと説明します。
また、上の数字は一例ですので、ハンドによって変える必要があります。
左から1番目の数字
ブラインド以外とビッグブラインド時の評価です。
この2つを一緒にして大丈夫かと思われるかもしれませんが、ビッグブラインドの額はラウンドのベット単位と同じため丸め込めます。
左から2番目の数字
スモールブラインド時の評価です。
分けておくことにより、リンプインしたあとレイズされた場合に残るか降りるかの変化をつけやすくなります。
左から3番目の数字
手前が全員降りてブラインド2人だけになった時の評価です。
2ベットしやすい特殊な状況のため分けています。
左から4番目の数字
手前が全員降りてボタンとブラインド3人だけかつレイズ無し時のレイズ額評価です。
2ベットしやすい特殊な状況のため分けています。
レイズしない場合は、ポジションに合わせて左から1番目か2番目の数字を採用します。
数字によるベット&コール共通基準
どの評価に該当した場合でも、数字による基準は共通です。
- 数字の額までレイズする
- 追加する金額が数字の額までならコールする
タイトアグレッシブなコンピューターだけで固めるなら、上記の基準だけで十分です。
しかし、本来2ベットすべきハンドを1ベットに抑えてコール基準はそのままや、手広く2ベットレイズをしてコール基準はそのままなど、コンピューターに個性を付ける場合は一工夫必要となります。
個性の付け方
個性を付ける場合は、ベット単位を 100/200/300/400 にしておいた方が新たな数字を設けなくて済みます。
3桁にしておけば、十の位と一の位をいじって個性を伝えられるということです。
- 本来2ベットすべきハンドを1ベットに抑えてコール基準はそのまま(120)
- 2ベットまでしてコールに追加するのは1ベット分まで(150)
など
上の数字はあくまで一例で、読者の方が分かりやすい数字で他基準の数字とかぶりが無ければ問題ありません。
ただし、個性をかなり細かく付けたいのであれば、ベット基準とコール基準の数字を分離した方が分かりやすいです。
まとめ
プリフロップの評価関数については、リミットルールであれば複雑化することなく、かなりスマートにまとまります。
それでも、うきでんポーカーではコンピューター6人分用意しているので、そこそこの行数にはなるのですが、フロップ以降に比べればかなり少ないです。
また、今回触れませんでしたが、評価関数に入れるベット&コールの額については、以下の記事が参考になると思います。
その他ラウンドの評価関数は、こちらの記事を参照してください。
コメント