Knobelaufgabe: (Fast) unschlagbar im Vier-Gewinnt

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Knobelaufgabe: (Fast) unschlagbar im Vier-Gewinnt

Beitrag von Froggerprogger »

Ich hab gestern Nacht ein bißchen Vier-Gewinnt gegen den Computer gespielt und fast immer verloren (obwohl er nicht perfekt spielt). Aus Müßiggang habe ich dann einfach mal eine 'dumme' Strategie versucht für den Fall, dass ich anfange. Standardspielfeld mit (B,H)=(7,6). Den ersten Stein schmeiße ich in die Mitte (also Slot 4). Danach verfahre ich wie folgt, indem ich einfach nur stumpf auf den Computer reagiere: Dieser schmeiße im nächsten Schritt in Slot x, und ich reagiere wie folgt:

1. Fall: In Slot x ist noch Platz => Ich schmeiße einfach auch in Slot x.
2. Fall: Slot x ist voll => Ich suche den nächsten freien Slot y rechts von x (ggf. rechts über Slot 7 hinaus wieder bei Slot 1 beginnend) und schmeiße dort hinein.

Auf diese Weise war ich nun immer unschlagbar. Es führte immer zum Unentschieden bei vollem Spielfeld. Also zunächst mal die Frage: Warum?

Nun, die Strategie ist gar nicht so schlecht, wenn man ein unentschieden forcieren möchte, denn: Egal wer wie gewinnt, jede 4-er-Reihe beinhaltet den mittleren Slot.
Senkrechte 4-er-Reihen des Computers verhindere ich dadurch, dass ich direkt nach ihm in den Slot werfe.
Waagerechte 4-er-Reihen des Computer erschwere ich maßgeblich daduch, dass ich in Slot 4 meine Steine nur in ungeraden Reihen platziere (von unten an gezählt, also zunächst mal liegt mit Beginn mein Stein in Slot 4 Reihe 1. Danach, sofern der Computer diesen Slot wählt, lege ich auch wieder drauf in Reihe 3 und 5. Wird vom Computer irgendein anderer Slot gewählt, so liegen meine Steine dort nachher in geraden Reihen 2, 4 und 6. Damit sind waagerechte Reihen ausgeschlossen. Erst wenn ich durch einen vollen Slot gezwungen werde, einen anderen Slot zu wählen, muss ich dieses System verlassen und ermögliche meinem Gegner, das für sich auszunutzen.
Diagonale 4-er-Reihen haben zwei Steine in geraden und 2 Steine in ungeraden Reihen, daher sind sie durch das System etwa ebenso stark erschwert, wie waagerechte Reihen.

Dieser Spielweise von mir hat der Computer nichts entgegenzusetzen. Dafür denkt er wahrscheinlich zu begrenzt. Er erkennt nicht, dass er gegen ein starres System spielen muss, dass er zu analysieren und darin eine Lücke zu finden hat. Vielleicht ist das sogar eine Moral für KI-Begeisterte: Ein Mensch erkennt solch ein System 'von selbst' und kann dann darauf reagieren. Die Knobelaufgabe nun lautet:

Sei ein schlauer Computer und gewinne gegen mein System!

(Es existiert zumindest eine Lösung, die ich gestern Nacht noch ergrübelt habe.)

Der naheliegenste Versuch war z.B., dass ich als Computer ebenfalls dasselbe System spiele, das führt dann zu der Einwurfreihenfolge:
Beginn: Mensch-Slot: 4
dann: die Liste der (Computer-Slot, Mensch-Slot)-Tupel:
(4) => (4,4) - (4,4) - (4,5) - (5,5) - (5,5) - (5,6) - (6,6) - (6,6) - (6,7) !!!!

Hier das Bild dazu:

Bild

In diesem Augenblick liegt eine schöne waagerechte Vierer-Reihe in Reihe 1 von Slot 4 zu 7 und Mensch gewinnt! Einfach den Spieß umzudrehen genügt also nicht.

Aber findet jemand eine Lösung? Dann bitte posten!

Hier der Link zu einem Online-Vier-Gewinnt-Spiel, bei dem man zum Testen seiner Strategie auch zwei menschliche Spieler einstellen kann:
http://www.mathsisfun.com/games/connect4.html
Also: Rot fängt an (in Slot 4) und spielt obige Strategie. Du bist blau... und versuchst rot ein Schnippchen zu schlagen.
!UD2
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Ich behaupte: Dein Computergegner ist ziemlich doof.
Dein vorgeschlagenes System funktioniert nur aus genau diesen Grund.
Spiel gegen einen stärkeren Gegner und Dein System hat keine Chance.

Wie gesagt: Nur eine Behauptung. :wink:
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

Dieser Spielweise von mir hat der Computer nichts entgegenzusetzen. Dafür denkt er wahrscheinlich zu begrenzt. Er erkennt nicht, dass er gegen ein starres System spielen muss, dass er zu analysieren und darin eine Lücke zu finden hat. Vielleicht ist das sogar eine Moral für KI-Begeisterte: Ein Mensch erkennt solch ein System 'von selbst' und kann dann darauf reagieren. Die Knobelaufgabe nun lautet:
Also ein Computer kann schonmal nicht denken. Die Software erkennt nur Dein starres System, wenn diese drauf programmiert wurde. Analysieren kann eine 08/15 KI eines Browsergames garantiert nicht, daß kann eher selten auch eine richtig gute KI.
Als begeisterter 4-Gewinntspieler hab ich einige Runden gespielt und mußte auch erkennen, daß die KI nix besonderes ist. Nach einigen Minuten hatte ich raus, wie ich die KI immer schlage, egal ob ich anfange oder der "Computer". Ich hab mich nicht genug mit dem Spiel auseinander gesetzt um es wirklich zu wissen, aber ich bin der Meinung, wenn jeder richtig auf paßt und kein Fehler getan wird, geht jedes Spiel unentschieden aus. Eine weitere Möglichkeit ist, daß auch immer der Beginner gewinnen würde. Auf jeden Fall hab ich schon wesentlich härtere 4 Gewinnt - KIs als Gegner gehabt.
Eine Art Query-Planner soll die Ausführung von Map/Reduce-Funktionen in Hadoop stark beschleunigen.
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Ich vermute ebenfalls, dass das System gegen einen perfekt spielenden Gegner nicht bestehen kann. Aber immerhin gegen Gnome-Vier-Gewinnt in der stärksten Stufe und gegen mehrere Online-Vier-Gewinnt, die ich ausprobiert habe.

Nur als Info zum Thema perfekt: Vier-Gewinnt ist schwach gelöst.
Der erste Spieler kann das Spiel gegen beste Verteidigung gewinnen, wenn er in der mittleren Spalte beginnt. Beginnt er in der Spalte links oder rechts daneben, endet das Spiel bei beiderseits perfektem Spiel remis; wirft er seinen ersten Stein in eine der vier restlichen Spalten, verliert er gegen einen perfekten Gegner sogar.
!UD2
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

Achja, was ich noch hinzufügen möchte, zu der Konstellation in Deinem Beispielsbild würde es nie kommen, sobald man 3 Steine Nebeneinander hat und beide Seiten offen sind, hat der Gegner verloren, da er ja nur eine Seite sperren kann...
Eine Art Query-Planner soll die Ausführung von Map/Reduce-Funktionen in Hadoop stark beschleunigen.
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Das Beispielbild zeigt, was geschieht, wenn beide Spieler dieses System spielen.
Dabei ist Spieler Rot derjenige, der das System spielt und in Slot 4 beginnt.
Spieler Blau versucht darin, den Spieß einfach umzudrehen, und spielt dasselbe System.
Dies führt zu der Konstellation im Beispielbild, die ja sogar Rot gewinnt.
Die Aufgabe ist nun, eine geeignete Strategie für Blau zu finden, die gegen Rot immer gewinnt.

Die Knobelaufgabe also nochmal zusammengefasst:
Du spielst gegen ein trotziges Blag, das nach obigem System spielt. Als Kind darf es anfangen und wirft in Slot 4.
Du bist dran (Blau) und machst irgendwas (aber was?).
Das Blag versucht wie oben beschrieben immer in denselben Slot wie Du zu werfen - und freut sich darüber, dass Du nicht gewinnst.

Wie also erzwingst Du, dass das nervige Blag mit dieser Strategie verliert? :D
(ist ja auch gar nicht sooo schwer, sondern nur eine kleine Knobelaufgabe)
!UD2
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Ich verstehe den Hintergrund dieser "Strategie" auch nicht...

und als ich gegen die KI in deinem LINK gespielt habe, habe ich bereits im ersten versuche gegen "Hard", gewonnen.
Vllt nur glück, aber irgendwie spielte er auch zimlich durchschaubar...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Gegen die KI hinter dem Link habe ich nie richtig gespielt (sondern nur gegen eine KI auf meinem Rechner). Der Link dient lediglich dazu, dass man dort zwei menschliche Spieler einstellen kann. Dann kannst Du das Spielfeld manuell nutzen, um Deine eigene Strategie zu finden, um meine Nervige-Blag-Strategie zu brechen.

Außerdem funktioniert die Nervige-Blag-Strategie gegen die KI hinter dem Link und auch andere von mir online getesteten KIs: Sie wurden stets zu einem Unentschieden gezwungen. Allerdings vermute ich, dass die Nervige-Blag-Strategie nicht gegen perfekt spielende KIs funktioniert.

Viellleicht ist das irgendwie missverständlich gewesen: Ich habe hier lediglich eine Knobelaufgabe gestellt:
Finde eine Gewinnstrategie gegen die von mir vorgestellte Nervige-Blag-Strategie
Damit wärest Du zumindest 'schlauer', als alle von mir getesteten nicht-perfekten Vier-Gewinnt-KIs, die stets nur ein Unentschieden erreichten.
!UD2
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

vllt sollten wir mal gegeneinander spielen, damit ich verstehe wie deine "Nervige-Blag-Strategie" sein soll.

Denn die durchbricht man ja sofort, indem mal deine "dumme" Spielweise sich zunutzen macht, und sich damit sofort n "Dobble" baut, und der affe ist tot ...

Hast du/ kennst du n ONLINE Viergewinnt, bin derzeit online ...

EDIT: ESSE aber erst ^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Ich weiß nicht, was ein Dobble ist, aber falls das eine horizontale Dreier-Reihe bezeichnet, musst Du beachten, dass ich (das nervige Blag :D ) den ersten Zug mache, Sonst wäre es natürlich Mega-Trivial, man müsste nur in die Slots 4,5,6,7 einwerfen und hat schon gewonnen, weil das Blag immer nur drauflegt.
Denn die durchbricht man ja sofort, indem mal deine "dumme" Spielweise sich zunutzen macht,...
Genau darum geht's! Dazu habe ich eine Lösung gefunden (wie gesagt, gar nicht so kompliziert, aber etwas nachdenken und ausprobieren musste ich schon, um sie zu finden). Vielleicht findest Du ja auch eine noch einfachere Lösung.

Ich spiele kein Online-Vier-Gewinnt (generell keine Online-Spiele) und kenne daher auch keines, wo man mal eben Online gegeneinander zocken kann. Falls Du eins kennst bin ich aber gerne bei einer Partie dabei. Ansonsten hier nochmal der Ablauf:

- Ich fange an und werfe in Slot 4.
- Du wirfst in irgendeinen Slot X.
- Ich werfe einfach hinterher in denselben Slot X.
- Du wirfst in irgendeinen Slot Y.
- Ich werfe einfach hinterher in denselben Slot Y.
- ...

Das wars schon. Nun kann es aber passieren, dass Slot X voll ist, und ich daher nicht hinterherwerfen kann. Dann nehme ich einfach den nächsten Slot rechts von X (rechts von Slot 7 liegt Slot 1), bei dem noch mindestens ein Plätzchen frei ist und werfe dahinein.
!UD2
Antworten