2017-11-29 11 views
-2

私は、Minimaxアルゴリズムを使って設計したTic Tac Toe AIが無敵になるように、良い評価関数を考えることでした。私たちが持っていた制限は、残りのゲームのソースコードを変更しないこと、AIが完全に機能するはずだったゲームツリーの最低の深度が3でなければならないという制限でした。例えば、minimax関数を3の深さは8の深さで呼び出すのと同じように動作するはずです。私の質問は、ティックタックのつま先AIがその深さの浅い部分でも機能することができますか?これは私のアルゴリズムでしたが、いくつかの非常に特殊なケースで殴られたので、欠陥がありました。ティックタックトーンのAI Minmax関数を3の深さで無敵にすることはできますか?

public int Evaluate() 
{ 
    int count = 0; 
    if (CurrentState.Field(0, 0) != 0) 
     count += (CurrentState.Field(0, 0) == 1) ? 1 : -1; 
    if (CurrentState.Field(0, 2) != 0) 
     count += (CurrentState.Field(0, 2) == 1) ? 1 : -1; 
    if (CurrentState.Field(2, 0) != 0) 
     count += (CurrentState.Field(2, 0) == 1) ? 1 : -1; 
    if (CurrentState.Field(2, 2) != 0) 
     count += (CurrentState.Field(2, 2) == 1) ? 1 : -1; 
    if (CurrentState.Field(1, 1) != 0) 
     count += 4 * ((CurrentState.Field(1, 1) == 1) ? 1 : -1); 
    if (CurrentState.over != 0) 
     count += (CurrentState.over == 1) ? 20 - Current State.SpotsTaken() : -20 + CurrentState.SpotsTaken(); 

     return count; 
    } 

アイデアは、コーナーは少なくとも「ポイント」の価値があるということですが、いくつかはそれにもかかわらず、センターは最も「ポイント」の価値があること勝つと、「ポイント」より価値があります。 CurrentStateは評価中の状態で、CurrentState.Fieldはゲームボードです。ゲームボードのセルの値は、スポットが取られていない場合は0、Xがある場合は1、Oがある場合は2です.CurrentState.overは、ゲームが終了した場合は1、勝ったプレーヤーがXならば2です。勝利した選手がOだった場合は0、引き分けの場合は0になります。私はゲームが殴られているのを見て5点中1点を得て、それが正当なものかどうかを見たいと思っています。

This is the series of events in which the game doesn't work with a depth of 3

+0

あなたの質問は何ですか? – maccettura

+0

私は本当にお金を払っていません。ここに質問がありません。私が見ているのは、あなたが持っているものと、できないことです。 – MethodMan

+0

最初の段落の最後の2番目の文が表示されますか? –

答えて

2

実は、ゲームは非常に少ないの深さが必要です。任意の位置のための優先順位は以下のとおりです。勝つ移動のため

  1. チェックし、次のターンに対戦相手の勝利のためにそれ
  2. チェックを行い、
  3. それをブロック
  4. テイクオープンコーナーを取るの中心を取ります開いた側

コーナーで両サイドを重視することで、いくつかのゲームを失うことになります。

+0

正確には、各ノードを評価するときに行ったことです。上のコードがそうしているように、各ノードにミニマaxが働くべき値を与えます。 Xがコーナーをコントロールしている場合はノードの値に1を加え、Oがコーナーをコントロールする場合は値から1を引いてください。 Xがセンターをコントロールしている場合は4を、Oをコントロールする場合は4を減算します。Xが20を加算した場合 - ボード上のスポットの数、Oが勝った場合は同じ値を減算します。 –

+0

そしてそれは後で相手の勝利につながる動きを予測できるように深さが必要です –

関連する問題