The docs had drifted from the code and described things that never existed. - architecture.md documented a QuitCommand class (quit/exit are aliases on MenuCommand) and a GameIO interface of read()/write(String); the real one is readLine() plus print(StyledText) with presentation hooks. Both corrected, along with the package diagram and the game-loop sketch. - conventions.md listed a package tree missing save, menu, io.text and command.impl. Updated, including why MapLayout lives in game. - data-structures.md claimed LinkedList was deliberately avoided (Pathfinder uses one for O(1) addFirst during path reconstruction), named the wrong queue for the Swing bridge, and listed an input history that was never built. - Removed enhancement-ideas.md and implementation-status.md: a backlog and a phase tracker, neither of which documents the delivered project. Also stop tracking the built jars. They still ship in the submission, but a 22 MB binary that changes on every build does not belong in git history.
37 lines
1.5 KiB
Markdown
37 lines
1.5 KiB
Markdown
# Semesterprojekt – Textadventure
|
||
|
||
Design- und Architekturdokumentation. Bedienung und Build stehen im
|
||
[Haupt-README](../README.md).
|
||
|
||
## Inhalt
|
||
|
||
| Datei | Inhalt |
|
||
|---|---|
|
||
| [architecture.md](architecture.md) | Package-Struktur, Schichten, DTO-vs-Domain-Trennung |
|
||
| [data-structures.md](data-structures.md) | Alle gewählten Collection-Typen mit Begründung |
|
||
| [conventions.md](conventions.md) | Sprache, ID-Format, Naming, Lombok-Cheatsheet |
|
||
| [item-model.md](item-model.md) | Item-Hierarchie (abstract + 3 Subtypen), Lombok-Inheritance |
|
||
| [commands.md](commands.md) | Befehlsparser, Command-Pattern, Befehlsliste |
|
||
| [npcs.md](npcs.md) | NPC-Modell, Talk- und Give-Interaktion |
|
||
| [yaml-schemas.md](yaml-schemas.md) | Schemas der YAML-Dateien unter `resources/world/` |
|
||
| [loading-flow.md](loading-flow.md) | Lade-Reihenfolge, Referenz-Auflösung, Validierung |
|
||
| [music.md](music.md) | Hintergrundmusik in der GUI (Bonus) |
|
||
|
||
## Pflicht vs. Optional (laut Aufgabenstellung)
|
||
|
||
- **Pflicht:** ≥ 4 Räume mit Navigation, ≥ 3 Gegenstände mit Inventar —
|
||
erfüllt mit 14 Räumen und 19 Gegenständen.
|
||
- **Optional/Bonus:** NPCs (3) und Swing-GUI — beides umgesetzt.
|
||
|
||
Welche Klasse welche Anforderung umsetzt, steht als Tabelle im
|
||
[Haupt-README](../README.md).
|
||
|
||
## Technologie-Stack
|
||
|
||
- Java 21 (LTS)
|
||
- Jackson (YAML) für das Laden der Spielwelt
|
||
- Lombok zur Reduktion von Boilerplate
|
||
- JUnit 5 + AssertJ + Mockito für Tests
|
||
- SLF4J + Logback für Logging
|
||
- Swing für die GUI (Bonus)
|