状態空間検索は、ボードのさまざまな状態を介して行われます。空いている場所ならどこにでも石を置けるので、動きが多いです。各状態は、3 つの値 (白、黒、または空いている) を持つ 9x9 マトリックスなどとして表すことができます。したがって、9x9 ボードでは、3 ^ 81 の可能なボード状態があります。
どのボード状態からでも、移動回数は空いている頂点の数です。これらの頂点のいずれかに石を置くことができます。自分の色しか遊べません。したがって、最大で 81 の可能な移動があります..最初の移動で 81、2 番目の移動で 80 というように続きます。したがって、深さ 5 まで合理的に検索でき、おそらくそれ以上..悪くありません。
前述のように、適切な表現は 2D マトリックスです。これは、空を表す 0、白を表す 1、黒を表す 2 などの値を持つ int の 2D 配列にすることができます。... int[9,9]。
あなたの評価関数はあまりよく聞こえません。代わりに、次の点についてポイントを与えます。
-- 連続して 5 を獲得 -- 基本的に、これは勝利なので最大スコアを与えます -- 2 つのオープン エンドで連続 4 を獲得 -- 対戦相手はあなたが 5 を獲得するのをブロックできないため、最大スコアも与えます。 -- 1 つのオープン エンドで 4 連続 -- 対戦相手はブロックするために 1 つの場所でプレーしなければならないため、依然として非常に脅威的なポジションです。-- 2 つのオープン エンドで 3 連続 -- 再び非常に高いスコア --- 4、3、2、1 両方のクローズド エンドで -- 5 を連続して作成することはできないため、0。
等々。
次に、標準のミニマックス アルゴリズム (アルファ ベータ プルーニング) を適用するだけです。これはチェスとまったく同じですが、異なる状態空間ジェネレータと評価関数があります。