Commit Graph

82 Commits

Author SHA1 Message Date
42dbcd9696 feat(model): track visited rooms on Player for the map
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:58:21 +02:00
f1b83f1f81 Merge presentation/output layer (sub-project 1) into develop
Semantic styled-output model + console (ANSI/box-drawing) and Swing
(4-region, JTextPane, bundled font, HiDPI scaling + zoom, responsive
side panel) renderers, per-turn HUD, welcome banner. 79 tests green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:38:19 +02:00
13f34e1694 fix: correct .gitignore for .superpowers/ (was glued to .DS_Store line)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:38:10 +02:00
b042d7e0ef fix(io): responsive side-panel width (ratio of window, clamped min/max)
Side panel (map slot) now sizes to ~25% of window width, clamped to
[160, 320] scaled px, recomputed on resize — instead of a fixed width.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:29:51 +02:00
9316f67c31 docs: mark presentation layer (sub-project 1) as implemented
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:25:42 +02:00
d3a9bd06cc fix(io): scale GUI fonts for HiDPI + live zoom (Ctrl +/-/0)
Java Swing does not reliably pick up desktop display scaling on every
Linux session (tiny text on HiDPI laptops). Detect the display scale from
the default GraphicsConfiguration transform (falling back to screen DPI)
and multiply all font sizes by it, plus the window size. Add live zoom via
Ctrl +/-/0 as a guaranteed manual override.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:25:04 +02:00
650bbbe58c feat(io): welcome banner for game start
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:22:59 +02:00
963ddfb89e feat(io): SwingIO 4-region layout, JTextPane styling, bundled font loader
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:21:23 +02:00
5f9d52ca41 feat(game): publish HUD (location, gold, turn) each loop iteration
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:19:40 +02:00
9274eef4c0 refactor(command): LookCommand emits semantic RoomView
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:18:50 +02:00
64cc654803 feat(io): ConsoleIO ANSI + box-drawing renderer with colour/glyph modes
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:18:18 +02:00
44fde78c64 feat(io): make print(StyledText) the GameIO primitive; keep suite green
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:16:55 +02:00
02e448d61a feat(io): RoomView/Hud views and default Renderings
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:15:06 +02:00
d57a1ab9a4 feat(io): semantic styled-text model (Style, Span, StyledText)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:14:22 +02:00
230177dfb5 docs: spec for presentation/output layer (sub-project 1)
Semantic output model (Style/Span/StyledText) + RoomView/Hud views,
GameIO extended additively (write(String) stays as default), ConsoleIO
(ANSI + box-drawing, tiered glyph modes) and SwingIO (region layout,
JTextPane, bundled font) renderers, command + TestIO migration. Map,
menu, save, music explicitly deferred to later sub-projects.

Also: capture "don't overwhelm / distribute info across regions" and
"B baseline + ASCII for big moments" decisions in the backlog.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:06:36 +02:00
0b9f55d0b1 docs: flesh out enhancement backlog (menu, save, music, mechanic spine)
- decisions: standard collections only, libraries allowed
- main menu + settings + saved-games list
- save/load system
- GUI music: per-room via YAML, external folder, compressed + streamed
- game core: "restore the power" main goal, 5-piece mechanic spine,
  quest chain routing the player room-by-room, condensed by design

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 19:54:29 +02:00
a130cf329b docs: start enhancement-ideas backlog for post-1.0 work
Living backlog of ideas to take the game beyond the required minimum:
richer presentation, nerd-font strategy, map, quest system, ~60-min
content expansion. No design committed yet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 19:39:42 +02:00
3225599412 semesterprojekt: finalize 1.0 deliverable (run profiles, dungeon room, README)
- pom.xml: exec-maven-plugin run profiles (@run console, @gui Swing)
- rooms.yaml: add dungeon room reachable south of the kitchen
- README.md: project overview, build/run/play instructions
- .gitignore: ignore brainstorming companion dir (.superpowers/)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 19:39:42 +02:00
83643a192f 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.
2026-05-25 21:37:59 +02:00
9b6528d800 uebung_03: implement Task 3 (BST) and Task 4 (IntHashSet)
Task 3 adds IntBinarySearchTree with iterative add/contains and a
test class covering empty trees, duplicates, and degenerate ascending
and descending insertion orders.

Task 4 adds IntHashSet backed by an IntLinkedList bucket array with
a 0.7 load factor, Math.floorMod-based hashing for negative-int
safety, doubling resize that rehashes via a private
addWithoutResize helper, and a test class covering negatives,
Integer.MIN_VALUE, forced collisions on bucket 0, and 100-element
inserts spanning three resizes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 23:19:48 +02:00
964e6a0afb uebung_02: complete IntArrayList with get, size, sort, remove and finish add
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 22:08:01 +02:00
69b1531a53 chore: ignore compiled .class files
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 22:07:54 +02:00
e5fab1bec5 uebung_03: implement Task 1 (IntLinkedList) and Task 2 (generic LinkedList)
Doubly linked list with head/tail references for int values (Task 1)
and a generic LinkedList<T>/ListNode<T> version (Task 2). Both
implement add, get, remove, getSize with O(n/2) walks via the
closer-end heuristic. Includes IntLinkedListTest covering empty,
single-element, head/tail/middle removal, and out-of-bounds cases.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 22:06:24 +02:00
879d6a8721 Remove all solution markdown, task images, solution PDFs, and add renamed folder structure as part of THB-wide reorganization. 2026-05-11 18:58:40 +02:00
7624547d66 WIP: snapshot before THB-wide structural reorganization
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 22:19:03 +02:00
3f85063348 Update docs link to new path 2026-04-08 20:40:58 +02:00
b226dfced3 Link to THB-Docs for Git setup guide 2026-04-08 20:38:39 +02:00
4324c01110 Update README and remote for general semester repo 2026-04-08 20:32:59 +02:00
3499133298 Add README 2026-04-08 20:29:58 +02:00
a958ba600f Add Task 6 sorter, fix method signatures, generate solution PDF 2026-04-08 20:27:43 +02:00
cd51025dc4 Add Task 5 prime number generator, AI comparison, and .gitignore 2026-04-08 19:46:21 +02:00
c6fca7b541 Add initial implementation including utility classes, core modules, and project configuration files 2026-03-30 20:45:04 +02:00