Connect Four
Dies ist eine Web-Anwendung, um das bekannte Spiel „Connect Four“ zu spielen. Zwei Spieler (A ist rot, B ist gelb) füllen abwechselnd das Spielbrett mit Münzen und versuchen, vier der eigenen Münzen zu verbinden, entweder horizontal, vertikal oder diagonal.
Dieses Projekt wurde von Christian Kollmann als Projekt in der Lehrveranstaltung „Softwaretechnik-Projekt“, betreut von Oswin Aichholzer, an der TU Graz entwickelt.
Der Server ist in Java 7 geschrieben und verwendet das Spring-Framework. Der Client ist inHTML und JavaScript geschrieben, unter Verwendung von jQuery. Die Kompatibilität wurde in Chromium und MozillaFirefox unter Linux und Android getestet. Nichtsdestotrotz sollte die Anwendung mit jedem Browser wieMicrosoft Internet Explorer kompatibel sein.
Features
- Etweder Spieler (A und B) können von einem Menschen oder dem Computer (KI) gesteuert werden
- Wählen Sie die Stufe der KI: „Perfekt“ macht immer einen optimalen Zug (der nicht unbedingt einmalig sein muss), „Einfach gewinnen“ wählt zufällig einen Gewinnzug (falls vorhanden und nicht unbedingt optimal), „Zufällig“ wählt zufällig eine Spalte
- Zuginfo: Zeigt optional die Anzahl der Halbzüge bis zum Ende des Spiels für die möglichen Züge an
- Zug empfehlen: Zeigt den/die perfekten Zug/e für den aktuellen Spieler an (kann mehr als ein Zug sein)
- Undo/Redo: Macht den/die letzten Zug(e) eines der beiden Spieler rückgängig
- Speichern/Laden: Speichert das Spiel (im lokalen Speicher, der von HTML5 zur Verfügung gestellt wird), um das Spiel später fortzusetzen
Grundlagen
Die KI dieses Spiels basiert auf einer erschöpfenden Auswertung aller möglichen Spielpositionen von bis zu 23 Münzen, die in einer großen Datenbank gespeichert sind. Boards mit 24 oder mehr Münzen werden direkt auf dem Server ausgewertet. Für jedes mögliche Brett ist der Status (aktueller Spielersieg, gegnerischer Spielersieg, Remis) bekannt, sowie die minimale Anzahl von Halbzügen, die benötigt werden, um einen Sieg von diesem Brett zu erzwingen. Eine gerade Zahl zeigt an, in wie vielen weiteren Halbzügen das Spiel durch Setzen der Münze in dieser Spalte gewonnen werden kann (optimales Spiel des Gegners vorausgesetzt, sonst kann man schneller gewinnen). Eine ungerade Zahl zeigt an, um wie viele Halbzüge Sie den Sieg des Gegners maximal verzögern können (wiederum optimales Verteidigungsspiel des Gegners vorausgesetzt). Ein „D“ zeigt eine Stellung an, in der der aktuelle Spieler ein Remis erzwingen kann. Eine gerade Zahl zeigt also einen Gewinnzug an, der der aktuellen Spielerin (wenn sie weiterhin optimal spielt) in maximal dieser Anzahl von Halbzügen einen Sieg garantiert. Ein optimaler Gewinnzug ist ein Zug, der die kürzeste verfügbare Folge von Halbzügen garantiert, bis der Spieler gewinnt. Insgesamt bestätigt die zugrundeliegende erschöpfende Datenbasis nicht nur, dass „Connect Four“ ein erster Spielergewinn ist. Sie zeigt für jede mögliche Situation auf dem Brett die vollständigen Informationen für alle möglichen Züge an und liefert damit perfekte Informationen zur Analyse des gesamten Spiels.