Tach!
Kann man prinzipiell formulieren, wie ein Computer-Spieler vorgehen wird/sollte?
Ja, nach dem implementierten Algorithmus. Das war die Antwort auf das "wird". Das "sollte" hängt davon ab, was man erreichen möchte. Der Computer macht ja von sich aus keine Fehler. Die musst du selbst in den Algorithmus einbauen, wenn du nicht nur eine auf Gewinn ausgelegte Strategie haben möchtest.
Ich habe versucht, meine eigenen Entscheidungen, welchen Zug ich durchführe, zu abstrahieren und bin dabei auf bestimmte Muster gestoßen, die ich selber versuche zu erzeugen bzw. beim Gegner zu verhindern.
Mathematiker haben auch Spaß daran, abseits eines konkreten Spieles in Ruhe Wege zu finden, die aus rein logischen Beweggründen zielführend sind. Normalsterbliche Menschen arbeiten hingegen gern auch mal mit dem Bauchgefühl, weil das Durchrechnen im Kopf anstrengend ist, besonders wenn man die weitere Entwicklung in die Zukunft betrachten will und sich jede Menge Wege auftun, die man alle beachten muss. Für einen Computer ist es jedoch ein leichtes, mit deutlich größeren Datenmengen umzugehen, als es der Mensch kann. Er braucht nur ein richtig geschriebenes Programm. (Selbst wenn sich irgendwann ein Performance-Problem ergibt, hat er immer noch weitaus mehr Daten berechnet, als es der Mensch könnte.)
Eine andere Vorgehensweise ist das Lernen. Das beginnt ganz grob gesehen mit zufälligem Setzen und schauen, ob das zum Gewinn führt. Die Schwierigkeit ist, die Situation zu definieren, so dass gleiche Situationen erkannt werden können. Dabei ist auch der Fortschritt im Spiel nicht ganz unwichtig. Wobei sich der in deinem Spiel automatisch anhand der Füllung des Brettes ergibt. Du kannst das aber auch vereinfachen, dass du dir das Brett als ganzes merkst und dann x mal y Züge dazu. Allerdings klingt das nur einfach, da werden sich ganz schnell immense Datenmengen ansammeln. Zudem muss man den Computer sehr oft spielen lassen, damit sich ein Lerneffekt einstellen kann. Am Ende ist der Computer aber wieder unschlagbar. Irgendwo dazwischen sollte er agieren, wenn er mit einem menschlichen Gegner spielt, sonst wird das für den Menschen schnell langweilig, wenn da gar keine Chance auf Erfolg sichtbar ist.
Ich würde dann auch gerne prüfen können, ob ein bestimmtes Muster erfolgreich war und diese Muster würde der Computer dann häufiger probieren als andere. Vielleicht sogar ein neues Muster speichern?
Es ist ja nicht nur der Füllstand eines Feldes, sondern auch der darumliegenden zu beachten. Und eigentlich kann man das gar nicht einschränken, weil der gesamte Brettinhalt relevant ist. Selbst wenn da eine Schneise das Brett in Teile teilt, kann die sich ja im Verlauf des Zuges füllen und der Funke überspringen.
Erfolg könnte man wohl kurzfristig einfach prüfen, indem man nach dem Zug Anzahl der übernommenen Felder zählt.
Das täuscht. Solange noch Züge übrig sind, kann sich das Blatt schlagartig wenden. Das geht am Ende mitunter ziemlich aufregend hin und her.
dedlfix.