Skip to content

Latest commit

 

History

26 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deathstacks

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.

Features

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

Getting Started

  • Projekt bauen: stack build

  • Alle Tests ausführen: stack test

  • Aufgeräumten Build erzwingen stack clean

Testing

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)

Using the CLI

`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

About

Rein funktionale Haskell-Implementierung des Strategiespiels Deathstacks. Zuggenerierung, Zugvalidierung, Kantenreflexions-Geometrie und Gewinnerkennung, abgesichert durch eine vollständige Hspec-Testsuite mit Coverage-Reports

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages