ボードゲームAIの作成


9

私はOkeyという名前で、主にトルコで人気のあるボードゲームをコーディングしたいと思っています。http://en.wikipedia.org/wiki/Okey

しかし、私はAIについていくつかの問題を抱えています。

最初にゲームについて説明させてください。

ゲームは4人のプレーヤーでプレイされます。

このゲームには106のタイルがあり、そのうちの2つは偽のジョーカーです。他の104のタイルは、一般的に緑、黒、青、赤の4色に分かれています。すべての色には2セットのタイルがあります。セットiseには、1から13まで順番に番号が付けられた13のタイルが含まれています。

各プレーヤーは14タイルを開始し(1つは開始15で最初に開始)、最も不要なタイルの1つを次のプレーヤーに投げます。次のプレーヤーは、このタイルを取得するか、テーブルの中央にあるスタックから別のタイルを取得できます。ゲームは反時計回りに再生されました。

このゲームの目的は、14タイルの有効なシーケンスをできるだけ早く見つけることです。プレーヤーは、タイルを13まで同じ色で連番で並べることができます。たとえば、緑1、緑2、緑3の場合は例外です。ここでは例外があり、1は13に続くことができます。たとえば、赤12、赤13、赤1は有効なセット。ただし、赤13、赤1、赤2は無効です。

または、プレーヤーは同じ数の色でタイルを揃えることができます。たとえば、緑1、黒1、赤1、青1などです。

各セットを有効にするには、3つ以上のタイルである必要があり、このセットのそれぞれに「Per」という名前を付けます。仕上げには3タイル未満は無効です。有効な仕上げセットは次のようになります。G:緑、B:青、R:赤、BL:黒G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13

最後に、ゲームを開始するときに、ジョーカー(オーケー)を決定するために選択されたタイル。たとえば、Blue 3を選択した場合。青4はジョーカー(オーケー)となり、プレーヤーは、セットを獲得または完了するために必要なタイルの代わりに、このタイルを使用できます。

もちろん、これらの規則は一般的な規則であり、質問を説明するために要約されています。英語が読める場合は、このリンクで詳細を確認できますhttp://tr.wikipedia.org/wiki/OkeyまたはGoogle Translateによる翻訳ページhttp://translate.google.com/translate?js=n&prev=_t&hl= en&ie = UTF-8&layout = 2&eotf = 1&sl = tr&tl = en&u = http://tr.wikipedia.org/wiki/Okey

では、どのAIアルゴリズムを使用できますか?ミニマックス理論とアルファベータ剪定を探しました。しかし、これらの理論は通常、チェスや三目並べのような2人のプレーヤーによるゲームです。

元の質問は、stackoverflowにあります。https//stackoverflow.com/questions/4419628/creating-a-board-game-ai


1
多くのAIアルゴリズムを使用できるので、「どれ」が設計(またはエンジニアリング)のトレードオフになります。ゲームを「解決」できる(つまり、最適にプレイできる)「完璧な」AIが必要ですか?それとも、自分自身を困らせないほど十分に機能するが、打ち勝つことができるほど十分に弱い(特にいくつかの難易度レベルが必要な場合)「ゲーム」AIが必要ですか?それとも、ゲームをテストできるように、ロジックなしで再生する必要最低限​​の「ダム」AIだけが必要ですか?多くの選択肢、本質的に正しいか間違っているものはありません。
Ian Schreiber

この問題のために特別に開発されたアルゴリズムが必要になると思いますが、その中でさまざまな手法やアルゴリズムを使用できる場合があります。あなたはai.stackexchange.comで
マシューは

@ Ian、AIがゲーム自体を受け入れられるようにしたい。後でかもしれませんが、難易度を追加できます。だから私は出発点が必要です。@マシュー私はそこに私の質問を追加します。皆さん、ありがとうございました。
bahadir arslan 2010

痛い!ai.stackexchange.comは閉鎖されたようですが、それは尋ねるのに最適な場所でした...悲しいです。
bummzack 2010

よく知られているminmaxのマルチプレイヤーバージョンはMaxNとParanoid Searchです
Druzil

回答:


3

カードのタイルを交換した場合、ゲームの説明はカードゲームのジンラミーと非常によく似ています。それを検索することで、いくつかの直接AIリソースを見つけることができる場合があります。

プレーヤーの数にとらわれず、さまざまなAIパーソナリティを作成するために使用できるAIの1つのオプション:

  1. ボードゲームをプレイします。理想的には何人かの友達と一緒にプレイしますが、自分ですべてのハンドをプレイできますが、コンピューターが便利でExcelが開いています。
  2. あなたの思考プロセスが何であるかを読み上げてください。決定を下すときに考慮すべき離散点がいくつかあります。「不要なタイルは私に再生可能なセットを提供します」、「私をセットに一歩近づける」、「既存の再生可能なセットに追加する」のようなものです。
  3. 次に、どのタイルをピックアップし、どのタイルを破棄するかを決定するときに検討するすべてのアイテムのリストを取得したら、最も重要なものに基づいて、それらに番号の重みを作成し始めます。
    1. 例:シーケンスの3番目のタイルを取得することは、既存のシーケンスの4番目のタイルを取得することと比較して、3倍重要になる場合があります。
  4. 決定を下すときに見るすべてのことについてこれらすべての重みが得られたら、Excelを使用して各アクションのスコアを計算できます。したがって、各行がアクションの選択を表し、各列が決定要因を表すワークシートがあります。その係数がそのアクションに対して真である場合は、その係数に重みを乗算し、その係数が偽である場合は、スコアをゼロにします。次に、すべてのスコアを合計します。最も高い値を持つものが、AIが実行することを選択するものです。
  5. Excelを開いた状態でゲームをプレイします。毎ターン、スコアの結果が選択した結果と一致するかどうかを確認します。それができるまであなたの考えに基づいて重みを調整しない場合。いくつかのゲームの後、AIはあなたと同じようにゲームをプレイするはずです。すべてが異なるウェイトを持つ友人のグループと一貫してプレイしている場合は、さまざまな個性を持つAIがあります。

次に、常に最高の評価オプションを選択することで、難易度を制御できます。スコアが低いほど、決定が悪くなります。


ジンラミーのAIの作成に関する記事です。それはいくつかの有用な洞察を証明するかもしれません。 aifactory.co.uk/newsletter/2007_02_imperfect_info.htm
Tim Holt

私はこれをできるだけ早く見ます。@Tim Holtと@skerslakeに感謝します
bahadir arslan

私は麻雀戦略も探します。それほど密接には関連していませんが、まだ近いです。
Loren Pechtel 2010
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.