Jean-Luc Makiola 6eabebff00 fix(combinations): guard null response; reject self-combination at load
- Combinations.tryUse: only write response when non-null and non-blank,
  preventing NPE/IllegalArgument for effects-only recipes.
- CombinationFactory.fromDto: throw WorldLoadException when a == b,
  since item singletons make a self-combination impossible at runtime.
- Tests: +effectsOnlyRecipeAppliesEffectsWithoutProduceOrResponse
  (CombinationsTest 7→8), +rejectsSelfCombination
  (CombinationFactoryTest 4→5).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 17:28:32 +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%