Vollständige, rein funktionale Implementierung des abstrakten Strategiespiels Deathstacks in Haskell.
Deathstacks ist ein rundenbasiertes Zwei-Spieler-Strategiespiel auf einem 6×6-Feld, bei dem Spielsteine zu Stapeln verschmelzen, sich gegenseitig erobern und über die Brettkante hinweg wie an einem Spiegel reflektiert werden. Wer am Ende jeden Stapel auf dem Brett kontrolliert, gewinnt. Dieses Projekt bildet die komplette Spiellogik als reine, seiteneffektfreie Haskell-Funktionen ab.
Vollständige Spiel-Engine: Board-Parsing aus kompakter FEN-ähnlicher Notation, Zuggenerierung, Zugvalidierung und Gewinnerkennung Geometrie mit Kantenreflexion: Bewegungen in alle 8 Richtungen, die am Spielfeldrand korrekt gespiegelt werden, statt einfach abzubrechen Stapel-Mechanik: Spielsteine türmen sich, der oberste Stein bestimmt die Kontrolle über den Stapel. Eroberung durch Draufsetzen Rein funktionaler Kern: keine Seiteneffekte in der Spiellogik, dadurch vollständig deterministisch testbar CLI-Demo (Main.hs): Spielzüge für eine Stellung berechnen und zufällig einen gültigen Zug ausführen lassen Umfangreiche Testsuite: Unit-, Validierungs- und Coverage-Tests mit Hspec und HPC
-
Projekt bauen:
stack build -
Alle Tests ausführen:
stack test -
Aufgeräumten Build erzwingen
stack clean
stack test deathstacks:validate (Validierungstests)
stack test deathstacks:units (Unit-Tests)
stack test deathstacks:grading (Grading-Tests)
stack test --coverage (Tests inkl. HPC-Coverage-Report)
`stack exec deathstacks-exe -- "<FEN>" <r|b> [-all]
- "<FEN>" — Spielfeldstellung in FEN-Notation
- r / b — der ziehende Spieler (Rot oder Blau)
- all — gibt alle gültigen Züge aus, statt einen zufälligen zu wählen