semesterprojekt: implement full text adventure (phases 1-7)
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.
This commit is contained in:
33
Semesterprojekt/docs/README.md
Normal file
33
Semesterprojekt/docs/README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Semesterprojekt – Textadventure
|
||||
|
||||
Design- und Architekturdokumentation. Dient als Spec während der Implementierung.
|
||||
|
||||
## Inhalt
|
||||
|
||||
| Datei | Inhalt |
|
||||
|---|---|
|
||||
| [architecture.md](architecture.md) | Package-Struktur, Schichten, DTO-vs-Domain-Trennung |
|
||||
| [conventions.md](conventions.md) | Sprache, ID-Format, Naming, Lombok-Cheatsheet |
|
||||
| [data-structures.md](data-structures.md) | Alle gewählten Collection-Typen mit Begründung |
|
||||
| [item-model.md](item-model.md) | Item-Hierarchie (abstract + 3 Subtypen), Lombok-Inheritance |
|
||||
| [yaml-schemas.md](yaml-schemas.md) | Schemas für `items.yaml`, `rooms.yaml`, `npcs.yaml`, `game.yaml` |
|
||||
| [loading-flow.md](loading-flow.md) | Lade-Reihenfolge, Referenz-Auflösung, Validierung |
|
||||
| [commands.md](commands.md) | Befehlsparser, Command-Pattern, Befehlsliste |
|
||||
| [npcs.md](npcs.md) | NPC-Modell, Talk- und Give-Interaktion |
|
||||
| [implementation-status.md](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)
|
||||
Reference in New Issue
Block a user