Vier gewinnt - Kurzdokumentation

Team: Myriam Schaad und Colin Dubuis

Funktionsübersicht

Die Anwendung bietet folgende Kernfunktionen, die durch den Custom Hook useConnectFour gesteuert werden:

Funktion Technische Beschreibung
dropPiece(colIndex) Kern-Spielzug: Implementiert die Gravity Logic (Suche nach tiefstem freien Slot in Spalte). Aktualisiert das Board immutabel, pusht den alten State in die History und triggert checkWin.
checkWin(board, player) Algorithmus zur Gewinnermittlung. Scannt das Grid mittels "Sliding Window" auf 4 zusammenhängende Tokens (Horizontal, Vertikal, Diagonal).
undo() Entfernt den aktuellen State und stellt den vorletzten Zustand aus dem history-Array wieder her (LIFO-Prinzip). Setzt bei leerer History auf Initialzustand.
resetGame() Setzt gameState auf INITIAL_STATE zurück und leert den gesamten History-Stack. Bereinigt zudem Fehlermeldungen.
saveGame() Persistenz-Wrapper: Delegiert das Speichern an StorageService.save. Verarbeitet das Resultat und gibt Feedback (Alert bei Erfolg, Error-State bei Fehlschlag).
loadGame() State Hydration: Lädt Daten via StorageService.load. Bei Erfolg werden State und History komplett überschrieben, bei Fehler wird meta.error gesetzt.
doku(url) Öffnet diese Dokumentation in einem neuen Tab. Nutzt noopener,noreferrer aus Sicherheitsgründen.

UI Helper (ConnectFour.jsx)

Funktion Technische Beschreibung
getStatusMessage() Evaluiert boolesche Flags (gameOver) und Enum-Werte (winner), um den Spielstatus textuell zurückzugeben.
getStatusColor() Mapping-Funktion, die basierend auf dem aktiven Spieler/Gewinner den CSS-Farbstring ("blue"/"red") für die UI zurückgibt.

Wichtige Implementierungsdetails

Technologie-Stack

Das Projekt wurde mit folgenden Technologien umgesetzt:

Architektur & Code-Struktur

Die Anwendung folgt dem Prinzip der "Separation of Concerns" (Trennung der Zuständigkeiten):


Besonderheiten