Nejlepší odpověď
Skutečná „strategie“ je ve skutečnosti poměrně složitá a zahrnuje vyčerpávající vyhledávání v bodech, které je třeba vyřešit s taktikou, takže není praktické ji používat ručně.
Na druhou stranu, strategické postřehy a některá obecná pravidla jsou pro člověka snadno použitelné a pravděpodobně z vás udělají relativně dobrý hráč.
Pozadí
Začněme rychlou kontrolou connect-4. Hra se hraje na desce 6 × 7; můžeme označit každý řádek číslem a každý sloupec písmenem:
Každý hráč se střídá při výběru sloupce; jejich kámen je umístěn v nejvíce otevřené buňce ve sloupci. Můžeme napsat hru pouze pomocí sloupců; například pokud oba hráči hrají na středním sloupci, můžeme napsat dd
. To by vedlo k následující desce:
(Podle konvence bude hráč 1 modrý a hráč 2 červený.)
Hru lze vyhrát spojením čtyř částí vaší barvy vodorovně, svisle nebo úhlopříčně:
Posledním užitečným pojmem je hrozba , což jsou jen tři kusy v řadě s otevřeným čtvrtým čtvercem (ale nemusí být nutně přístupné). Zde má modrá v úhlopříčce hrozbu:
Strategie
Hra je vyřešena: první hráč (modrý) může vždy vynutit výhru. Základní myšlenky vítězné strategie jsou celkem jednoduché: ovládání zugzwang a ovládání liché / sudé řádky.
Zugzwang
„Zugzwang“ jako výraz znamená ztrátu, protože musí provést tah. Jednoduchým příkladem by bylo mít dvě hrozby nad sebou. Zde je příklad modrého vynucení výhry ve sloupci c s červeným pohybem:
Dvojité hrozby, jako je tato, jsou poměrně snadno rozpoznatelné předem a počítadlo. V praxi mnohem užitečnější forma Zugzwangu zahrnuje jen čekání, až se zaplní celá hrací plocha a zbývá už jen jeden možný tah. Uvažujme o jednoduchém příkladu, kde červená vyhrává vlevo, skutečná síla nastává až po spoustě tahů:
Sudé / liché hrozby
Kdokoli má hrozbu, která bude neúprosně naplněna, nakonec vyhraje. Jak jsme viděli v předchozím příkladu, červená může vyhrát s hrozbou v sudý řádek. Naproti tomu modrá potřebuje zvláštní hrozbu, aby zvítězila: právě zde je asymetrie ve hře objeví se.
Zvláštní hrozba „uzavře“ sloupec a v zásadě převrátí, kdo může získat který řádek při vyplňování celého boa rd. To zejména znamená, že platná lichá hrozba je „silnější“ než platná sudá hrozba: pokud má modrá lichou hrozbu v jednom sloupci a červená sudou hrozbu v druhém, modrá vyhraje. Zde je příklad (modrá hra):
Z této pozice můžeme opakovaně vyplňovat, dokud se nedostaneme k pozice, kde červená musí hrát c
protože g
(která má v sobě lichý počet figurek) by vedla k modré výhře. sloupec c
se naplní, dokud nebude červená nucena ztratit:
lichá hrozba „funguje“, protože omezuje jeden sloupec, aby měl lichý počet pozic – což efektivně odvrací sudý počet čtverců (42) na liché číslo, které převrátí dynamiku hry. To také znamená, že pokud jak červená, tak modrá mají nezávislé liché hrozby, zruší se: mít dva liché sloupce vrací součet zpět k sudému.
Obecněji nám liché / sudé rozlišení dává představu ovládání : červená obvykle ovládá hru, ale modrá může získat kontrolu vytvořením zvláštní hrozby. V praxi znamená ovládání schopnost zahrát libovolné sudé pole nebo volitelně zahrát liché pole, ale na oplátku nechat soupeře zahrát sudé pole.
Taktika
Liché / sudé rozlišení nám umožňuje hrát „strategicky“ – v každém případě spoustu tahů vpřed. Abychom skutečně vyhrávali důsledně, musíme spojit naše znalosti o dlouhodobé strategii se zdravými taktickými krátkodobými pohyby. Musíme mít na paměti takové malé pasti:
Pravidla
Skutečná vítězná strategie hry sestává z devíti pravidel založených na dříve popsaných strategických principech a taktice.Pravidla vyvinul Victor Allis v roce 1988 – myslím, že byl prvním člověkem, který hru vyřešil.
Pravidla mohou vždy „ najít optimální řešení: někdy budete muset provést skutečné prohledání možností, hlavně kvůli řešení taktických záležitostí.
Zde jsou nejdůležitější pravidla, která si myslím, že jim dala Allis . Existuje několik dalších pravidel, ale jsou to buď speciální případy, nebo jen kombinace předchozích pravidel; o všech pravidlech se dočtete v aktuální diplomové práci: Znalostní přístup Connect Four .
- baseinverse : vždy, když soupeř získá druhé, můžete si nárokovat jedno ze dvou čtverců, takže můžete vždy zablokovat čtyři v řadě, které potřebují dva podobné čtverce. Například červená může vždy hrát jeden ze zelených čtverců poté, co modrá zahrá o tam:
- vertikální : svislou čáru čtyři v řadě můžete kdykoli zablokovat hraním jednoho ze dvou čtverců přímo nad sebou. Červená může vždy zablokovat svislou čáru čtyři v řadě na
d
přehráním jednoho ze zvýrazněných čtverců:
- claimeven : kdokoli má hru pod kontrolou (tj. červená, pokud modrá nemá zvláštní hrozbu ) může hrát čtverec v sudé řadě (pokud tento čtverec není okamžitě hratelný). Toto pravidlo ztělesňuje základní strategii lichých / sudých.
- aftereven : pokud máte kontrolu a máte hrozbu v sudém řádku, budete moci tento řádek hrát přes claimeven. To znamená, že všechny hrozby ve stejném sloupci nad tímto jsou blokovány. Například zde modrá nebude moci hrát
b3
, protože červená má hrozbu nab2
:
- lowinverse : pokud existují dva sloupce s lichým počtem otevřených čtverce, výsledek je sudý. Pokud existují dva liché čtverce v takových sloupcích, které nelze přímo hrát, kdo ovládá hru, bude moci hrát alespoň jeden z nich. To platí také pro čtverce, které nejsou ani zdaleka hratelné a nejsou vedle sebe. V těchto dvou jednoduchých příkladech může červená získat alespoň jeden ze dvou zvýrazněných čtverců:
Vítězství
Hra byla vlastně vyřešena kombinací těchto pravidel a nějakým vyčerpávajícím prohledáváním – pravidla sama o sobě bohužel nestačí.
Mnoho pravidel závisí na ovládání hry. Jelikož červená má původně kontrolu, modrá nemůže používat mnoho pravidel, dokud se jim nepodaří vytvořit zvláštní hrozbu. Modrá může vytvořit lichou hrozbu pomocí některých pravidel, která nezávisí na tom, že mají kontrolu, nebo jen taktickým myšlením, jako je kombinace skupin dvou částí, aby se v budoucnu zaručila lichá hrozba.
Ukázalo se, že první hráč to může udělat proti optimální hře, pokud je první tah d1
. To znamená, že první hráč může vždy vyhrát. Hledání, které to skutečně zavedlo, je také podrobně popsáno v práci.
Pro lidské hráče je s tímto druhem logiky těžké pracovat. Naštěstí někdo jiný našel řadu dobrých otvorů, které můžete obecně použít: Expert Play in Connect-Four .
Kromě toho jsem všechny ilustrace vytvořil pomocí úžasného balíčku diagramů od Haskella. Ve skutečnosti celá tato odpověď byla vlastně cvičením, jen abych se naučila, jak používat knihovnu, což jsem už nějakou dobu chtěla dělat! Na tomto přehledu se můžete podívat na kód. Kód je chaotický, ale je skvělou ukázkou toho, že na rozdíl od všeobecného přesvědčení je Haskell ve skutečnosti skvělý pro interaktivní vytváření prototypů a psaní vyhodného kódu.
Také si myslím, že je skvělé vidět, jak může Emacs zobrazit náhled SVG a PNG ve vyrovnávací paměti, což mi v zásadě poskytuje prostředí na míru pro vývoj obrázků, jako je tento: