Jean-Luc Makiola d0966c3ce4 fix(menu): main-menu Quit now closes the GUI instead of revealing the game
App.run ended its menu loop on Quit and just returned. The console exits then,
but in the GUI run() is on a daemon worker while the Swing JFrame stays
displayable on the EDT, keeping the JVM alive — and the dismissed menu overlay
just revealed the running game underneath ("back into the game"). EXIT_ON_CLOSE
only fires for the native window X, not a programmatic quit.

Add a GameIO.shutdown() teardown hook (default no-op) and call it after the menu
loop ends. SwingIO overrides it to stop music, dispose the window, and exit the
JVM, mirroring EXIT_ON_CLOSE; console keeps the no-op. Extract an injectable
App.run overload and add AppQuitTest asserting the Quit path invokes shutdown().

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 09:39:05 +02:00
2026-05-23 22:07:54 +02:00

Programmierung 2 — Algorithmen und Datenstrukturen

Code zu den Aufgabenblättern aus dem Modul Programmierung 2 (2. Semester).

Dieses Repo enthält ausschließlich den Java-Code. Aufgabenstellungen, Lösungstexte und PDFs liegen außerhalb des Repos in ../Uebungen/<NN>/ (Nextcloud-synchronisiert, nicht versioniert). Konvention siehe THB/README.md.

Repository klonen

git clone https://gitea.jeanlucmakiola.de/THB/Jander_Semester2.git code
cd code

(Lokal heißt der Checkout code per THB-Konvention; remote-Name bleibt historisch Jander_Semester2.)

Struktur

code/
├── uebung_01/          - Aufgabenblatt 1
│   └── src/
│       ├── util/       - Hilfsklassen (Util, ArrayTester)
│       ├── task3/      - NumberGuesser + KI-Vergleich
│       ├── task4/      - AnagrammChecker + KI-Vergleich
│       ├── task5/      - PrimeNumberGenerator + KI-Vergleich
│       └── task6/      - Sorter + KI-Vergleich
└── uebung_02/          - Aufgabenblatt 2
    └── src/
        └── util/       - Hilfsklassen (Util, ArrayTester, IntArrayList, Sorter)

Die zugehörigen Aufgabenblätter und Lösungs­dokumente liegen in:

../Uebungen/01/{Aufgabe.pdf, Loesung.md, Loesung.pdf, task1.png, task2.png, task5.png}
../Uebungen/02/{Aufgabe.pdf, Loesung.md}

Voraussetzungen

Description
Algoritmen und Datenstrukturen
Readme 61 MiB
Languages
Java 100%