New
- The most common typo in programming — `wenn alter = 18` instead of `wenn alter == 18` — is now rejected before the program starts, with a message that leads to the fix. Previously such a line silently reassigned the variable and the condition was always true afterwards: an error that reports no error. The rule applies everywhere Kiste compares — in `wenn`, `sonstwenn`, `solange`, in the value after `prüfe`, and in a `fall` branch. Each place explains what was meant there: after `prüfe` Kiste suggests `prüfe x`, and for `fall` it points out that this is the value being compared against.
- Sound and text in games. `nutze klang` now works in the same program as `nutze grafik` — the shot bangs, the hit thuds. On top of that, `grafik.zeichne_text(...)` draws text straight onto the screen: score, „Game Over", wave counter. No more painting digit images, umlauts included.
- Bundled library with `kiste2d`. `nutze kiste2d` now finds the library next to `kiste.exe` — it no longer has to sit beside every program. It contains `kiste2d.überlappt(...)` for collisions: the building block every game needs. A local copy still wins.
Changed
- Learning book: new sections 6.5 (the `=`/`==` typo), 18.5b (`liste.enthält` and friends), 38.13 (mouse input), plus sound and text in games. And a box „Beim Bauen zur .exe" in twelve chapters: it names the spots `kiste build` does not know yet, each with a way around it.
Fixed
- Conditions that only ran in the interpreter. `wenn aktiv[i]`, `wenn m["k"] ?? wahr` and similar forms ran with `kiste run` but failed with `kiste build`. The cause was a whitelist of permitted forms in the compiler; it has been replaced by the rule „a condition is an expression of type boolean". Future forms are covered as well.
- Sound in Linux graphics programs. A program using `nutze grafik` together with `nutze klang` could not be built on Linux — the linker was missing the ALSA library.