Legjobb válasz
A tényleges “stratégia” valójában meglehetősen összetett, és kimerítő keresést tartalmaz az üzletekben taktikával, ezért nem célszerű kézzel használni.
Másrészt a stratégiai felismerések és néhány általános célú szabály könnyen használható az ember számára, és valószínűleg viszonylag jó játékos.
Háttér
Kezdjük azzal, hogy gyorsan átnézzük a connect-4-et. A játékot 6 × 7-es táblán játsszák; minden sort számmal, minden oszlopot betűvel jelölhetünk:
Minden játékos felváltva választ egy oszlopot; kőjük az oszlop legalsó legnyíltabb cellájába kerül. Csak oszlopok segítségével írhatunk játékot; Például, ha mindkét játékos a központi oszlopot játssza, akkor írhatunk dd
-t. Ez a következő táblához vezet:
(Megállapodás szerint az 1. játékos kék, a 2. a piros színű lesz.)
A játékot úgy nyerhetjük meg, ha a szín négy darabját vízszintesen, függőlegesen vagy átlósan összekötjük:
Utolsó hasznos fogalom a fenyegetés , amely csak három darab egymás után, a negyedik négyzet nyitva (de nem feltétlenül érhető el). Itt a kék átlóban fenyegetést jelent:
Stratégia
A játék megoldódott: az első játékos (kék) mindig győzelmet kényszeríthet. A nyertes stratégia alapgondolatai meglehetősen egyszerűek: a zugzwang és a páratlan / páros ellenőrzése. sorokat.
Zugzwang
A “Zugzwang” kifejezés kifejezésként azt jelenti, hogy veszít, mert kell lépni. Egyszerű illusztráció két fenyegetés egymásra helyezése lenne. Itt van egy példa arra, hogy a kék a piros oszlop mozgatásához kényszeríti a győzelmet:
Azonban az ilyen kettős fenyegetések meglehetősen könnyen felismerhetők időben és számlálóval. A gyakorlatban a Zugzwang sokkal hasznosabb formája csak azt várja, amíg az egész tábla meg nem telik, és csak egy lehetséges lépés marad. Vegyük az egyszerű példát, ahol a piros nyer a bal oldalon, a tényleges erő csak egy csomó mozdulat után következik be:
Páros / páratlan fenyegetések
Akinek fenyegetése menthetetlenül beteljesedik, az végül nyer. Amint az előző példában láttuk, a piros nyerhet fenyegetéssel egy páros sor. Ezzel szemben a kéknek páratlan fenyegetésre van szüksége a győzelemhez: itt van az aszimmetria a játékban
Egy furcsa fenyegetés „elkapja” az oszlopot, és lényegében megfordítja, hogy ki melyik sort kaphatja meg, amikor az egész boa feltöltődik rd. Ez különösen azt jelenti, hogy az érvényes páratlan fenyegetés “erősebb”, mint az érvényes páros fenyegetés: ha a kéknek az egyik oszlopban páratlan, a másikon a páros a másik, akkor a kék akkor is nyer. Itt egy példa (kék a lejátszáshoz):
Erről a pozícióról többször tölthetünk, amíg el nem érünk egy az a helyzet, ahol a vörösnek el kell játszania c
, mert az g
(amelynek páratlan darabja van) kék nyerést eredményez. a c
oszlop addig töltődik fel, amíg a vörös vesztésre kényszerül:
A a páratlan fenyegetés azért működik, mert egyetlen oszlopot bezár, hogy páratlan pozíciók legyenek – ezzel gyakorlatilag elfordítva a táblát, hogy ne legyen páros négyzete (42) páratlan számra, ami megfordítja a játék dinamikáját. Ez azt is jelenti, hogy ha mind a vörös, mind a kék önálló páratlan fenyegetéssel bír, akkor megszakítják: ha két páratlan oszlop visszahozza az összeget a párosá.
Általánosabban a páratlan / páros megkülönböztetés ad irányítás : a vörös általában irányítja a játékot, de a kék megszerezheti az irányítást, ha furcsa fenyegetést jelent. A gyakorlatban a vezérlés azt jelenti, hogy bármilyen páros négyzetet játszhatunk, vagy opcióként páratlan négyzetet játszhatunk, de cserébe hagyjuk, hogy ellenfelünk páros négyzetet játsszon.
Taktika
A páratlan / páros megkülönböztetés lehetővé teszi számunkra, hogy “stratégiailag” játsszunk – mindenképpen sok haladást előre. Ahhoz, hogy valóban nyerjünk következetesen, össze kell kapcsolnunk a hosszú távú stratégiával kapcsolatos tudásunkat a jó taktikai rövid távú lépésekkel. Ilyen apró csapdákat kell szem előtt tartanunk:
Szabályok
A játék tényleges nyerési stratégiája a korábban lefedett stratégiai alapelveken és taktikán alapuló kilenc szabályból áll.A szabályokat Victor Allis dolgozta ki 1988-ban – azt hiszem, ő volt az első ember, aki megoldotta a játékot.
A szabályok “t mindig megtalálja az optimális megoldást: néha tényleges keresést kell végeznie a lehetőségek között, főként a taktikai aggályok kezelésére.
Íme szerintem a legfontosabb szabályok, Allis nevével . Van még néhány szabály, de ezek vagy speciális esetekre vonatkoznak, vagy csak a korábbi szabályok kombinációira vonatkoznak; az összes szabályról olvashat a tényleges dolgozatban: A négyes összeköttetés tudásalapú megközelítése .
- baseinverse : mindig igényelhet két hozzáférhető négyzet egyikét, amikor az ellenfél azt állítja, hogy másikat, így mindig blokkolhat egy négyet egymás után, amelynek két ilyen négyzetre van szüksége. Például a piros mindig játszhat az egyik a zöld négyzetek után, miután a kék játszik az o-val ott:
- függőleges : mindig blokkolhat egy függőleges négyet egymás után úgy, hogy a két négyzet egyikét közvetlenül egymás felett játssza. A piros mindig blokkolhatja a függőleges négyes sort a
d
oldalon a kiemelt négyzetek egyikének lejátszásával:
) képes páros sorban játszani egy négyzetet (mindaddig, amíg az a négyzet nem azonnal játszható). Ez a szabály az alapvető páratlan / páros stratégiát testesíti meg.
b3
, mivel a vörös fenyegetést jelent a b2
oldalon:
- lowinverse : ha két oszlop van páratlan számú nyitva négyzetek, az eredmény páros. Ha két páratlan négyzet van Az ilyen oszlopokban, amelyek nem közvetlenül játszhatók, bárki, aki irányítja a játékot, legalább egyet el tud játszani. Ez vonatkozhat azokra a négyzetekre is, amelyek távolról sem játszhatók és nem egymás mellett vannak. Ebben a két egyszerű példában a piros megkapja a két kiemelt négyzet közül legalább az egyiket:
Nyerés
A játékot valójában ezen szabályok és néhány kimerítő keresés kombinációjával oldották meg – a szabályok önmagukban sajnos nem elégségesek.
Sok szabály attól függ, hogy rendelkezik-e a játék irányításával. Mivel kezdetben a vörös rendelkezik irányítással, a kék sok szabályt nem használhat, amíg nem sikerül furcsa fenyegetést megállapítania. A kék furcsa fenyegetést hozhat létre néhány olyan szabály alkalmazásával, amelyek nem függenek az irányítástól vagy csak taktikai gondolkodástól, például két darabból álló csoportok kombinálásával garantálják a páratlan fenyegetést a jövőben.
Kiderült, hogy az első a játékos ezt megteheti az optimális játék ellen, amennyiben az első lépés d1
. Ez azt jelenti, hogy az első játékos mindig nyerhet. Az ezt ténylegesen megalapozó keresést a tézis is részletezi.
Az emberi játékosok számára ez a fajta logika nehezen használható. Szerencsére valaki más talált egy jó nyílást, amelyet általában használhat: .
Ezenkívül félretéve, az összes képet Haskell csodálatos diagramjainak csomagjával készítettem. ez az egész válasz valójában egy gyakorlat volt, csak a könyvtár használatának megtanulása érdekében, amire egy ideje értek! Megnézheti a kódot ebben a lényegben. A kód rendetlen, de remekül bizonyítja, hogy a közhiedelemmel ellentétben Haskell valóban nagyszerű interaktív prototípusok készítéséhez és eldobható kódok írásához.
Továbbá szerintem nagyon jó látni, hogy az Emacs hogyan képes előnézeti képeket tárolni az SVG-k és a PNG-k számára egy pufferben, lényegében egyedi környezetet biztosítva az ilyen képek fejlesztéséhez: