diff --git a/server/pruef-kachel-universum.mjs b/server/pruef-kachel-universum.mjs
index d4068aea..ad756d81 100644
--- a/server/pruef-kachel-universum.mjs
+++ b/server/pruef-kachel-universum.mjs
@@ -120,18 +120,60 @@ for (let i = 0; i < liste.length; i++) {
}
paare.sort((x, y) => x.d - y.d);
-/* DIE GRENZE IST GEMESSEN, NICHT GERATEN: 0,0529 war der Stand, den
- Filipe zu Recht beanstandet hat. Alles darunter ist nachweislich zu
- wenig; 0,09 ist der Wert, unter den die neue Palette nicht fällt. */
+/* ==== DIE GRENZE WAR FUER EINUNDZWANZIG FARBEN GERECHNET (25.09.2026)
+
+ Hier standen ZWEI Bedingungen: kleinster Abstand >= 0,09 und
+ „kein Paar unter 0,10". Die zweite war seit dem 17.09. nicht mehr
+ erfuellbar -- nicht schwer, sondern UNMOEGLICH.
+
+ Nachgerechnet (tools/_toene-packen.mjs): Aus allen sRGB-Farben,
+ die 4,8:1 gegen den Grund halten, nicht blenden und bunt genug
+ sind, laesst sich fuer eine gegebene Anzahl ein groesster
+ moeglicher Mindestabstand bestimmen -- eine Kugelpackung:
+
+ 30 Farben -> 0,115 48 Farben -> 0,0925
+ 40 Farben -> 0,103 52 Farben -> 0,0840
+ 45 Farben -> 0,0974 60 Farben -> 0,0805
+
+ Bei 21 Farben war 0,10 muehelos. Bei den heutigen 45 liegt die
+ DECKE bei 0,0974 -- die Forderung „kein Paar unter 0,10" konnte
+ also niemand erfuellen, mit keiner Palette der Welt.
+
+ WAS DAS ANGERICHTET HAT, ist das eigentlich Schlimme: Diese
+ Pruefung war dadurch DAUERHAFT rot. Und weil sie ohnehin rot war,
+ ist die Zeile darueber nicht mehr gelesen worden -- die stand
+ naemlich auf „kleinster Abstand 0,0154", also auf zwei Farben,
+ die mit blossem Auge dieselbe sind (#ff8fb4 und #fe8ebe). Acht
+ solche Paare gab es. Der echte Befund lag acht Tage lang offen
+ da, hinter einem Fehlalarm versteckt.
+
+ JETZT STEHT HIER EINE BEDINGUNG, DIE ERFUELLBAR IST -- und
+ daneben die zweite, die den Grund bewacht: Sobald jemand mehr als
+ 48 Kacheln anlegt, ist 0,09 nicht mehr erreichbar, und dann muss
+ ueber die Palette gesprochen werden statt still darunter zu
+ rutschen. Die Zahl ist gemessen, nicht gesetzt. */
const GRENZE = 0.09;
+const HOECHSTENS = 48; // darueber ist GRENZE nicht mehr erreichbar
+
ok(paare[0].d >= GRENZE,
- `kleinster Abstand ${paare[0].d.toFixed(4)} (Grenze ${GRENZE}) `
+ `kleinster Abstand ${paare[0].d.toFixed(4)} (Grenze ${GRENZE}, `
+ + `Decke fuer ${liste.length} Farben rund 0,097) `
+ `-- ${paare[0].a.hex}/${paare[0].b.hex}`);
+
+ok(liste.length <= HOECHSTENS,
+ liste.length <= HOECHSTENS
+ ? `${liste.length} Farben -- bis ${HOECHSTENS} ist ${GRENZE} nachweislich erreichbar`
+ : `${liste.length} Farben: ueber ${HOECHSTENS} ist ein Mindestabstand von `
+ + `${GRENZE} rechnerisch nicht mehr moeglich. Entweder weniger `
+ + `Kacheln mit eigener Farbe, oder die Grenze neu verhandeln.`);
+
+/* GEGENPROBE. Eine Pruefung, die immer bestaetigt, bestaetigt nichts:
+ Zwei Farben, die sich um einen einzigen Bildpunktwert
+ unterscheiden, MUESSEN hier durchfallen. */
{
- const eng = paare.filter((p) => p.d < 0.10).length;
- ok(eng === 0,
- eng ? `${eng} Paare unter 0,10: ${paare.slice(0, 3).map((p) => `${p.a.hex}/${p.b.hex}`).join(", ")}`
- : `kein einziges der ${paare.length} Paare liegt unter 0,10`);
+ const nah = abstand("#ff8fb4", "#fe8ebe"); // das alte Paar
+ ok(nah < GRENZE,
+ `Gegenprobe: #ff8fb4 gegen #fe8ebe misst ${nah.toFixed(4)} und faellt durch`);
}
{
/* KEINE ZWEI GLEICHEN. Das steht als eigene Zeile da, obwohl der
diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html
index 93cf4345..633ab73a 100644
--- a/workspace/anruf-probe.html
+++ b/workspace/anruf-probe.html
@@ -16,8 +16,8 @@
verdeckt. Gefunden hat es pruef-struktur.
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
-
-
+
+
-
+