ベストアンサー
実際の「戦略」は実際にはかなり複雑で、対処するポイントを徹底的に検索する必要があります戦術を使用しているため、手作業で使用するのは実用的ではありません。
一方、戦略的洞察といくつかの汎用ルールは、人間にとって使いやすく、おそらく比較的良いプレーヤーです。
背景
connect-4を簡単に確認することから始めましょう。ゲームは6×7ボードでプレイされます。各行に数字、各列に文字のラベルを付けることができます。
各プレーヤーが順番に列を選択します。彼らの石は、柱の一番下の開いたセルに配置されます。列だけを使用してゲームを書くことができます。たとえば、両方のプレーヤーが中央の列をプレイする場合、dd
と書くことができます。これにより、次のボードが表示されます。
(慣例により、プレーヤー1は青、プレーヤー2は赤になります。)
4つの色を水平、垂直、または斜めに接続すると、ゲームに勝つことができます。
最後の便利な概念は、脅威です。これは、4番目の正方形が開いた状態で3つ続けて表示されます(ただし、必ずしもアクセスできるとは限りません)。ここで、青には対角線上の脅威があります:
戦略
ゲームは解決されました:最初のプレーヤー(青)はいつでも勝利を強制することができます。勝利戦略の背後にある中心的なアイデアは非常に単純です。ツークツワンクを制御し、奇数/偶数を制御します。行。
ツークツワンク
用語としての「ツークツワンク」は、移動する必要があります。簡単な例としては、2つの脅威が重なり合っていることが挙げられます。これは、青が列cで勝利を強制し、赤が移動する例です。
ただし、このような二重の脅威事前に認識してカウンターするのはかなり簡単です。実際には、ツークツワンクのはるかに便利な形式は、ボード全体がいっぱいになり、残りの移動が1つだけになるまで待つことです。左側で赤が勝つ簡単な例を考えてみましょう。実際の力は一連の動きの後にのみ発生します:
偶数/奇数の脅威
容赦なく満たされる脅威を持っている人は、最終的に勝ちます。前の例で見たように、赤は偶数行。対照的に、青は勝つために奇数の脅威が必要です。これがゲームの非対称性です。
奇妙な脅威が列を「キャップオフ」し、ボア全体を埋めるときに誰がどの行を取得できるかを本質的に反転させますrd。特に、これは、有効な奇数の脅威が有効な偶数の脅威よりも「強い」ことを意味します。青の列に奇数の脅威があり、赤の列に偶数の脅威がある場合でも、青が勝ちます。例を次に示します(再生する青):
この位置から、次の位置に到達するまで繰り返し入力できます。 g
(奇数のピースが含まれている)では青が勝つため、赤がc
をプレイする必要がある位置。 c
列は、赤が強制的に失われるまでいっぱいになります:
奇数の脅威は、1つの列をキャップして、奇数の位置を確保するため、「機能」します。これにより、ボードの正方形の数が偶数になります(42)。これは、ゲームのダイナミクスを反転させる奇数になります。これは、赤と青の両方に独立した奇数の脅威がある場合にキャンセルされることも意味します。 id = “1e8d80340f”>
2つの奇数列は、合計を偶数に戻します。
より一般的には、奇数/偶数の区別により、コントロール:通常、赤はゲームをコントロールしますが、青は奇妙な脅威を確立することでコントロールを獲得できます。実際には、コントロールとは、偶数のマスをプレイできること、またはオプションとして奇数のマスをプレイできるが、その見返りに対戦相手に偶数のマスをプレイさせることを意味します。
戦術
奇数/偶数の区別により、「戦略的に」プレイできます。いずれにせよ、たくさんの前進があります。実際に一貫して勝つためには、長期戦略に関する知識と健全な戦術的短期的動きを組み合わせる必要があります。このような小さな罠を覚えておく必要があります:
ルール
ゲームの実際の勝利戦略は、前述の戦略原則と戦術に基づいた9つのルールのセットになります。ルールは1988年にビクターアリスによって開発されました。彼がゲームを解決した最初の人物だったと思います。
ルールは常にできません最適な解決策を見つける:主に戦術的な懸念に対処するために、可能性を実際に検索する必要がある場合があります。
これが最も重要なルールであり、Allisが付けた名前です。 。さらにいくつかのルールがありますが、それらは特別な場合または以前のルールの単なる組み合わせのいずれかです。実際の論文のすべてのルールについて読むことができます: ConnectFourの知識ベースのアプローチ 。
- baseinverse スパン>:対戦相手がもう一方を要求するときはいつでも2つのアクセス可能な正方形の一方を要求できるので、そのような2つの正方形を必要とする4列をいつでもブロックできます。たとえば、赤は常に青がoを再生した後の緑の正方形の1つ ther:
- 垂直スパン>:2つの正方形のいずれかを真上で再生することにより、垂直方向の4列をいつでもブロックできます。赤は、強調表示された正方形の1つを再生することにより、
d
の垂直方向の4列を常にブロックできます。
- claimeven :ゲームをコントロールできる人(つまり、青に奇妙な脅威がない限り赤) )は、偶数行で正方形を再生できます(その正方形がすぐに再生できない限り)。このルールは、基本的な奇数/偶数戦略を具体化します。
- aftereven :コントロールがあり、偶数行に脅威がある場合、claimevenを介してその行を再生できます。これは、その上の同じ列にあるすべての脅威がブロックされることを意味します。たとえば、ここでは赤は
b2
に脅威があるため、青はb3
を再生できません。
- lowinverse :奇数の開いている列が2つある場合正方形の場合、結果は偶数です。奇数の正方形が2つある場合直接プレイできない列の場合、ゲームをコントロールする人は誰でも、少なくとも1つはプレイできます。これは、プレイ可能とはほど遠い、隣り合っていない正方形にも当てはまります。これらの2つの簡単な例では、赤は2つの強調表示された正方形の少なくとも1つを取得できます。
勝利
ゲームは、これらのルールといくつかの徹底的な検索の組み合わせによって実際に解決されました。残念ながら、ルールだけでは十分ではありません。
ルールの多くは、ゲームを制御できるかどうかに依存しています。赤は最初は制御権を持っているため、青は奇妙な脅威を確立するまで、多くのルールを使用できません。ブルーは、コントロールを持つことに依存しないルールのいくつかを使用するか、将来的に奇妙な脅威を保証するために2つの部分のグループを組み合わせるなどの戦術的な思考を使用することによって、奇妙な脅威を確立できます。
最初の結果最初の動きがd1
である限り、プレーヤーは最適なプレイに対してこれを行うことができます。これは、最初のプレーヤーが常に勝つことができることを意味します。これを実際に確立した検索についても、論文で詳しく説明しています。
人間のプレイヤーにとって、この種のロジックは扱いにくいものです。幸いなことに、他の誰かがあなたが一般的に使用できる良い開口部のセットを見つけました: Connect-Fourでのエキスパートプレイ 。
また、余談ですが、Haskellのすばらしい図パッケージを使用して、すべてのイラストを作成しました。実際、この答え全体は、実際には、ライブラリの使用方法を学ぶための演習でした。これは、私がしばらくの間行うつもりでした。 この要点のコードを見ることができます。コードは乱雑ですが、「一般的な信念に反して、Haskellが実際に素晴らしいことを示す素晴らしいデモンストレーションです。インタラクティブなプロトタイピングと使い捨てコードの記述のために。
また、Emacsがバッファー内のSVGとPNGをプレビューする方法を見るのはクールだと思います。これにより、基本的に次のような画像を開発するための特注環境が得られます。