Jean-Luc Makiola 4cf1b42254 fix(io,save): music thread leak, save-slot collision, unresponsive GUI
- OggMusicBackend shared one 'stopping' flag across playbacks and nulled the
  thread handle without checking whether the join had actually succeeded. A
  thread that outlived its join budget saw the flag flip back to false and
  resumed playing, so two tracks played at once and the orphan never died. Each
  playback now owns its stop token, and fades abort when it is set.

- SaveService.slug mapped "Bedroom Run" and "Bedroom_Run" to the same filename,
  so the second save silently overwrote the first. The slug is now injective: a
  short hash is appended whenever sanitising was lossy. Clean names keep clean
  filenames, so existing saves still load.

- The Swing worker is the only consumer of the input queue, so when it died on a
  loader error the window stayed open and ignored every command forever. It now
  reports the error and closes. Typing while the menu overlay is up no longer
  queues commands that get replayed once the menu closes.
2026-07-14 12:38:56 +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%