Zum Inhalt springen

Connect four principiae: Unterschied zwischen den Versionen

Schematron (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
K +foo
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[http://de.wikipedia.org/wiki/Vier_gewinnt Vier Gewinnt] ist ein simples Brettspiel, bei dem zwei Spieler vier Steine in eine Reihe bekommen müssen -- ähnlich wie bei [http://de.wikipedia.org/wiki/Tic_Tac_Toe Tic-Tac-Toe]. Aber:
''[[wde:Vier_gewinnt|Vier gewinnt]]'' ist ein simples Brettspiel, bei dem zwei Spieler vier Steine in eine Reihe bekommen müssen -- ähnlich wie bei [[wde:Tic_Tac_Toe|Tic-Tac-Toe]]. Aber:


* Vier Gewinnt spielt man auf einem 7 x 6 großen Brett (Tic-Tac-Toe: 3 x 3)
* ''Vier gewinnt'' spielt man auf einem 7 x 6 großen Brett (Tic-Tac-Toe: 3 x 3)
* Bei Vier Gewinnt 'fallen' die Steine auf unbesetzte Felder (bei Tic-Tac-Toe kann man seine Steine auf jedes freie Feld setzen)
* Bei ''Vier gewinnt'' 'fallen' die Steine auf unbesetzte Felder (bei Tic-Tac-Toe kann man seine Steine auf jedes freie Feld setzen)
* Bei Vier Gewinnt muss man vier Steine in eine Reihe bekommen (bei Tic-Tac-Toe nur drei Steine)
* Bei ''Vier gewinnt'' muss man vier Steine in eine Reihe bekommen (bei Tic-Tac-Toe nur drei Steine)


Die genauen Regeln stehen in [http://de.wikipedia.org/wiki/Vier_gewinnt#Regeln Wikipedia]:  
Die genauen Regeln stehen in der [[wde:Vier_gewinnt#Regeln|Wikipedia]]:  


"Computerisierung" bedeutet hier nicht nur, dass ein Programm das Brett aufzeichnet und die Spielregeln verkörpert, sondern auch, dass es einen interessanten Gegner bietet. Dieser Wiki-Artikel erklärt eine simple Methode zur Konstruktion eines solchen Computerprogramms. '''Achtung''': Vier Gewinnt ist ein gelöstes Spiel, d.h. es gibt Programme, die ''immer'' gewinnen, weil sie alles über das Spiel wissen und einen Sieg vom ersten Zug weg erzwingen können. (Zieht der Mensch zuerst, kann der Computer ein Unentschieden erzwingen.) Die hier erklärte Methode ist keine solche Ausführung, liefert aber gute Resultate -- sogar auf kleinen (= 8-bit) Computern.
"Computerisierung" bedeutet hier nicht nur, dass ein Programm das Brett aufzeichnet und die Spielregeln verkörpert, sondern auch, dass es einen interessanten Gegner bietet. Dieser Wiki-Artikel erklärt eine simple Methode zur Konstruktion eines solchen Computerprogramms. '''Achtung''': ''Vier gewinnt'' ist ein gelöstes Spiel, d.h. es gibt Programme, die ''immer'' gewinnen, weil sie alles über das Spiel wissen und einen Sieg vom ersten Zug weg erzwingen können. (Zieht der Mensch zuerst, kann der Computer ein Unentschieden erzwingen.) Die hier erklärte Methode ist keine solche Ausführung, liefert aber gute Resultate -- sogar auf kleinen (= 8-bit) Computern.


== Gewinnen = Finden ==
== Gewinnen = finden ==


Vier Gewinnt ist ein Strategiespiel. Um zu gewinnen, muss man  
''Vier gewinnt'' ist ein Strategiespiel. Um zu gewinnen, muss man  
* die möglichen zukünftigen Züge im Geist durchgehen
* die möglichen zukünftigen Züge im Geist durchgehen
* dann überlegen welche Konsequenzen die einzelnen Züge haben, d.h. weiter in die Zukunft denken
* dann überlegen welche Konsequenzen die einzelnen Züge haben, d.h. weiter in die Zukunft denken
* einen Zug wählen, der für die Zukunft strategische Vorteile schafft, d.h. unter den möglichen Zügen den vorteilhaftesten auswählen
* einen Zug wählen, der für die Zukunft strategische Vorteile schafft, d.h. unter den möglichen Zügen den vorteilhaftesten auswählen


Da das Vier Gewinnt-Brett ("grid") sieben Spalten ("columns") zum Einwerfen hat, stehen beide Spieler für jeden Zug ("ply") vor (höchstens) sieben Möglichkeiten:  
Da das ''Vier gewinnt''-Brett ("grid") sieben Spalten ("columns") zum Einwerfen hat, stehen beide Spieler für jeden Zug ("ply") vor (höchstens) sieben Möglichkeiten:  


[[File:C4-opening-choices.png|Für jeden Zug höchstens sieben Möglichkeiten]]
[[File:C4-opening-choices.png|thumb|left|822px|Für jeden Zug höchstens sieben Möglichkeiten]] <div style="clear:both;"></div>


Ein Spieler, der im Geiste die Konsequenzen für seinen Zug überdenken will, muss von der neuen Situation weg für seinen Gegner ziehen. So entsteht ein buschiger Baum mit sieben Ästen, die ihrerseits sieben Äste haben. So muss der Spieler nach zwei Zügen 49 verschiedene Bretter bewerten:
Ein Spieler, der im Geiste die Konsequenzen für seinen Zug überdenken will, muss von der neuen Situation weg für seinen Gegner ziehen. So entsteht ein buschiger Baum mit sieben Ästen, die ihrerseits sieben Äste haben. So muss der Spieler nach zwei Zügen 49 verschiedene Bretter bewerten:


FIXME
[[File:c4-opening-depth-2.png|thumb|left|822px|nach dem nächsten Zug 7 Bretter, nach dem übernächsten Zug 49 Bretter]] <div style="clear:both;"></div>


Um so mehr Züge man in die Zukunft blickt, um so "tiefer" man über eine gegebene Situation am Brett nachdenkt, um so mehr Bretter muss man bewerten:
Um so mehr Züge man in die Zukunft blickt, um so "tiefer" man über eine gegebene Situation am Brett nachdenkt, um so mehr Bretter muss man bewerten:
Zeile 30: Zeile 30:
* 4 Züge: 2401 Bretter
* 4 Züge: 2401 Bretter


Ein Computerprogramm kann gewinnen, wenn es den Baum der möglichen Zukünfte absucht und eine siegreiche Spielsituation entdeckt. Hier ist ein Baum mit nur zwei Möglichkeiten pro Zug. Das vereinfacht die Darstellung:
Ein Computerprogramm kann gewinnen, wenn es den Baum der möglichen Zukünfte absucht und eine siegreiche Spielsituation entdeckt. Hier ist ein Baum mit nur zwei Möglichkeiten pro Zug. Das vereinfacht die Darstellung.


FIXME
[[File:c4-computer-wins.png|thumb|left|822px|Der Computer findet ein gewinnendes Brett und entscheidet sich für Zug 1]] <div style="clear:both;"></div>


Da der Computer einen Sieg im Zweig 1-2-2 entdeckt, liegt es nahe, sich für den Zug 1 zu entscheiden, denn der führt zum Sieg. Die Sache hat einen Haken: im Geist des Gegners laufen ganz ähnliche Denkprozesse ab. Der Gegner will einen von siegreichen Abzweigungen weg bringen. Betrachten wir diesen Baum:  
Da der Computer einen Sieg im Zweig 1-2-2 entdeckt, liegt es nahe, sich für den Zug 1 zu entscheiden, denn der führt zum Sieg. Die Sache hat einen Haken: im Geist des Gegners laufen ganz ähnliche Denkprozesse ab. Der Gegner will einen von siegreichen Abzweigungen weg bringen. Betrachten wir diesen Baum:  
Zeile 166: Zeile 166:


Jener Teil der Software, der einer bestimmten Situation am Brett einen Wert zuordnet, heißt der "statische Evaluator" (static evaluator). Wir brauchen einen besseren statischen Evaluator, der ein Gefühl dafür hat, welche Bretter näher dran sind am Sieg und daher mehr wert -- oder weniger, wenn sie näher dran sind am Sieg des Menschen. (Wie gesagt, wir betrachten die Werte aus der Perspektive des Computers.)
Jener Teil der Software, der einer bestimmten Situation am Brett einen Wert zuordnet, heißt der "statische Evaluator" (static evaluator). Wir brauchen einen besseren statischen Evaluator, der ein Gefühl dafür hat, welche Bretter näher dran sind am Sieg und daher mehr wert -- oder weniger, wenn sie näher dran sind am Sieg des Menschen. (Wie gesagt, wir betrachten die Werte aus der Perspektive des Computers.)
[[Kategorie:Gamedev]]