Walking skeleton through Swing GUI: YAML-driven world (4 rooms, 4 items, 1 NPC), HashMap command dispatch with parser, three-tier item hierarchy (readable / switchable / plain), and end-to-end NPC give/receive flow. 67 tests green.
1.4 KiB
1.4 KiB
Semesterprojekt – Textadventure
Design- und Architekturdokumentation. Dient als Spec während der Implementierung.
Inhalt
| Datei | Inhalt |
|---|---|
| architecture.md | Package-Struktur, Schichten, DTO-vs-Domain-Trennung |
| conventions.md | Sprache, ID-Format, Naming, Lombok-Cheatsheet |
| data-structures.md | Alle gewählten Collection-Typen mit Begründung |
| item-model.md | Item-Hierarchie (abstract + 3 Subtypen), Lombok-Inheritance |
| yaml-schemas.md | Schemas für items.yaml, rooms.yaml, npcs.yaml, game.yaml |
| loading-flow.md | Lade-Reihenfolge, Referenz-Auflösung, Validierung |
| commands.md | Befehlsparser, Command-Pattern, Befehlsliste |
| npcs.md | NPC-Modell, Talk- und Give-Interaktion |
| implementation-status.md | Aktueller Stand, Phasen-Checkliste, festgelegte Entscheidungen |
Pflicht vs. Optional (laut Aufgabenstellung)
- Pflicht: ≥4 Räume mit Navigation, ≥3 Gegenstände mit Inventar
- Optional/Bonus: NPCs, Swing-GUI
Beide optionalen Teile sind hier eingeplant.
Technologie-Stack
- Java 25
- Jackson (YAML) für Daten-Loading
- Lombok für Boilerplate-Reduktion
- JUnit 5 + AssertJ + Mockito für Tests
- Logback + SLF4J für Logging
- Swing für GUI (Bonus)