Der Strategiekern der vorliegende ,,Vier-Gewinnt`` Implementation basiert auf einer Kombination von strategischem vorausberechnen von Zügen und Zugwahl mittels einer Greedy-Heuristik.
Kern der Strategie ist die Bewertungsfunktion, welche eine beliebige Stellung für den jeweiligen Spieler bewertet. Die Bewertungsfunktion achtet dabei darauf, daß
. möglichst lange Folgen oder Pulks einer bestimmten Farbe entstehen und
. mögliche 3er und 4er erkannt werden.
Um Züge vorauszuberechnen, wird nach dem Zug des menschlichen Spielers für jede Zugmöglichkeit eine weitere menschliche Kugel gesetzt und das Ergebnis bewertet. Die gemachten Züge werden danach zurückgenommen. Dann wird für die Farbe des Computers dasselbe Verfahren angewendet. Das Ergebnis dieser Prozedur ist nun eine Bewertung für die bestmögliche Stellung des Gegners (sprich: höchster Zahlenwert der Bewertungsfunktion) und eine Bewertung für den besten Zug des Computers. Bei dieser Bewertung werden darüberhinaus die nächstbesten Züge in Hilfsvariablen gespeichert.
Die Strategie entscheidet sich nun (je nach Gewichtung eher aggressiv oder defensiv) dafür, ob sie eine eigene Stellung weiterentwickelt, oder ob sie eine gute Stellung des menschlichen Gegenspielers zu verhindern versucht. Für den gewählten Zug werden nun alle Zugmöglichkeiten des menschlichen Spielers und eigene Antwortmöglichkeiten (Vorausberechnung des 2. Zuges) ausprobiert und bewertet. Ergibt diese Bewertung, daß der vermeintlich optimale Zug innherhalb von 2 Zügen zu einem Sieg des menschlichen Spielers führt (z.B. Aufbau einer Falle), so wird der errechnete Zug verworfen und der zweitbeste Zug unter der jeweiligen Prämisse (aggressiv/ defensiv) zum auszuführenden Zug gemacht. Für diesen Zug werden nun erneut alle möglichen Antwortzüge des menschlichen Spielers getestet. Ergibt sich dabei eine signifikante Abweichung, so wird der drittbeste Zug gewählt. Danach zieht die Strategie auf jeden Fall, einerseits um Rechenzeit zu sparen und andererseits um nicht unschlagbar zu sein. Die Einschätzung von Stellungen beruht also auf Vorausberechnung, wohingegen die Auswahl von Alternativzügen auf einer Greedy-Heuristik beruht (Es wird einfach der nächstbeste Zug genommen)
|