Der leere Ring zeigte "100 %" -- das las sich wie "alles geschafft"

Die Pruefung verlangte prozent === 100, wenn gar nichts zu tun war. Der
Gedanke war richtig (ein leerer Ring darf nicht wie Versagen aussehen),
die Umsetzung nicht: Gelesen wird zuerst die Zahl in der Mitte, und
"100 %" heisst fuer jeden Menschen "fertig". Am ersten Tag, ohne eine
einzige Aufgabe, stand das als groesstes Element der Startseite.

Seit dem 19.09. steht dort ein Strich. Ein Anteil von nichts ist keine
Null und keine Hundert, sondern nicht definiert. Die Pruefung fragt
jetzt danach -- und damit gleichzeitig schaerfer: Solange gar keine Zahl
dasteht, kann dort auch nicht versehentlich der Uhrzeitwert stehen.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-21 11:44:55 +02:00
co-authored by Claude Opus 5
parent 782a9116f2
commit 200728c8e7
+22 -3
View File
@@ -167,7 +167,21 @@ melde("");
melde("=== 2. Es liegt nichts an ==="); melde("=== 2. Es liegt nichts an ===");
{ {
const r = await ring("CODE-LEER-0001"); const r = await ring("CODE-LEER-0001");
ok(r.prozent === 100, `voller Ring (${r.prozent} %)`); /* GAR KEINE ZAHL, WENN ES NICHTS ZU TUN GAB (berichtigt 20.09.2026).
Hier stand `prozent === 100`. Der Gedanke dahinter war richtig --
ein leerer Ring darf nicht wie "du hast nichts geschafft"
aussehen --, die Umsetzung aber nicht: Gelesen wird zuerst die
Zahl in der Mitte, und "100 %" heisst fuer jeden Menschen
"fertig", nicht "leer". Am ersten Tag, ohne eine einzige Aufgabe,
stand damit "100 % — HEUTE NICHTS OFFEN" als groesstes Element
der Startseite.
Seit dem 19.09. steht dort ein STRICH statt einer Zahl. Das ist
die ehrlichere Antwort: Ein Anteil von nichts ist keine Null und
keine Hundert, sondern nicht definiert. Geprueft wird deshalb der
Strich -- und dass gar keine Zahl gezeigt wird. */
ok(r.mitte === "–", `kein Prozentwert, sondern ein Strich (${r.mitte ?? "—"})`);
/* UND ES STEHT IN WORTEN DA. Ein voller Ring ohne Erklaerung waere /* UND ES STEHT IN WORTEN DA. Ein voller Ring ohne Erklaerung waere
wieder eine Zahl, bei der man raten muss -- genau der Fehler, der wieder eine Zahl, bei der man raten muss -- genau der Fehler, der
hier repariert wurde. */ hier repariert wurde. */
@@ -221,8 +235,13 @@ melde("=== 5. Was der Ring NICHT mehr ist ===");
darf nicht zufaellig wieder auf ihren Wert fallen. */ darf nicht zufaellig wieder auf ihren Wert fallen. */
const alt = Math.round((Math.min(Math.max(new Date().getHours() - 6, 0), 18) / 18) * 100); const alt = Math.round((Math.min(Math.max(new Date().getHours() - 6, 0), 18) / 18) * 100);
const r = await ring("CODE-LEER-0001"); const r = await ring("CODE-LEER-0001");
ok(r.prozent === 100 && (alt !== 100 || new Date().getHours() >= 24), /* Auch hier auf den Strich umgestellt: Solange in der Mitte gar
`die alte Uhrzeit-Rechnung ergaebe jetzt ${alt} %, der Ring zeigt ${r.prozent} %`); keine Zahl steht, KANN dort auch nicht der Uhrzeitwert stehen --
das ist die schaerfere Aussage. Zusaetzlich wird der Wert selbst
verglichen, damit die Zeile auch dann noch etwas misst, wenn der
Strich eines Tages wieder einer Zahl weicht. */
ok(r.mitte === "–" && r.prozent !== alt,
`die alte Uhrzeit-Rechnung ergaebe jetzt ${alt} %, der Ring zeigt "${r.mitte ?? r.prozent}"`);
} }
/* ======================================================================= /* =======================================================================