screen6: Bei DogFather steht jetzt eine Krone

Filipe, 22.09.2026: "bei dogi soll kein husky sein sondern eine krone.
die auch extrem auffaellt damit man den unterschied extrem erkennt."

WARUM ER RECHT HAT: Drei der fuenf Kacheln auf der Anmeldewand trugen
denselben Husky -- DogFather, rechte Hand, linke Hand. Drei gleiche
Zeichen untereinander sind kein Zeichen mehr, sondern Tapete; man
liest dann nur noch die Namen, und dafuer braucht es kein Bild.

WARUM GOLD: Die anderen vier Zeichen liegen alle im Blaubereich
(Husky silbern, Pfote blau, Community blaugrau). Eine Krone im selben
Farbkreis waere eine andere Form, aber kein anderer Eindruck. Gold ist
der einzige Hauston, der hier noch nicht vergeben ist -- und der, den
eine Krone ohnehin hat. Es sind vorhandene Hausfarben und kein
Leuchten: Der Unterschied kommt aus Form und Farbkreis, nicht aus
Helligkeit. Die Wand bleibt augenschonend.

WAS SIE NICHT HEISST: Der Untertitel bleibt "Ueberblick &
Entscheidungen" -- eine AUFGABE, kein Rang. Die vier anderen Rollen
behalten ihre Zeichen unveraendert, an den Texten aendert sich nichts.
Das Zeichen sagt "das ist die Rolle, die du suchst", nicht "der steht
ueber den anderen".

EIN FUND BEIM BAUEN: `.rolle__zeichen` faerbt jedes Rollenzeichen mit
dem Ton der Rolle ein -- gedacht fuer gezeichnete Striche. Der Husky
(ein Foto) und die Pfote (eigene Verlaeufe) merken davon nichts, weil
eine Flaeche ohne `stroke` die Regel stillschweigend ignoriert. Die
Krone haette sie sichtbar abbekommen: ein blauer Rand um eine goldene
Krone. Ausdruecklich abbestellt.

DIE PRUEFUNG HIELT DIE ALTE VORGABE FEST und wurde zu Recht rot: Sie
verlangte seit dem 10.09., dass die rechte Hand DASSELBE Zeichen
traegt wie DogFather. Beide Fassungen geben eine Anweisung von Filipe
wieder; dazwischen ist die linke Hand dazugekommen.

Statt die Paarliste umzuschreiben -- die beim naechsten Umbau wieder
danebenlaege -- prueft sie jetzt die Eigenschaft, um die es geht: Jede
Kachel traegt ein Zeichen, DogFathers kommt genau einmal vor, es ist
auf der Seite auch definiert (ein `use` auf eine vertippte Kennung
zeichnet lautlos nichts), und die zwei Haende lesen sich weiter als
Paar. Mit Gegenprobe.

pruef-crew-adresse 153/0 (von 148), pruef-css-klassen grün.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-22 14:19:30 +02:00
co-authored by Claude Opus 5
parent a8e49496ad
commit 091c5f9cd9
41 changed files with 722 additions and 588 deletions
+56 -10
View File
@@ -491,23 +491,69 @@ for (const [rolle, name] of [["admin", "DogFather"], ["hand", "Rechte Hand"], ["
ok(wandCrew.text.includes(`data-rolle="${rolle}"`) && wandCrew.text.includes(`>${name}<`),
`crew.: die Kachel "${name}" steht da`);
}
/* WELCHES ZEICHEN AUF WELCHER KACHEL (Filipe, 10.09.2026: "bei rechte
hand soll der husky sein und bei modis soll die pfote sein").
/* WELCHES ZEICHEN AUF WELCHER KACHEL
---------------------------------------------------------------------
HIER STAND BIS ZUM 22.09.2026 DAS GEGENTEIL, und beide Fassungen
geben eine Anweisung von Filipe wieder:
Geprueft wird die ZUORDNUNG, nicht das Aussehen: DogFather und die
rechte Hand tragen dasselbe, der Modi ein anderes. So gelesen haelt
die Pruefung auch dann, wenn die Zeichen selbst eines Tages neu
gezeichnet werden -- gewollt ist die Gruppe, nicht der Husky. */
10.09.: "bei rechte hand soll der husky sein und bei modis soll
die pfote sein" -> DogFather und rechte Hand gleich.
22.09.: "bei dogi soll kein husky sein sondern eine krone. die
auch extrem auffaellt damit man den unterschied extrem
erkennt." -> DogFather eigenes Zeichen.
Dazwischen ist die LINKE Hand dazugekommen. Damit trugen DREI von
fuenf Kacheln denselben Husky -- und drei gleiche Zeichen
untereinander sind kein Zeichen mehr, sondern Tapete.
WAS JETZT GEPRUEFT WIRD, ist deshalb nicht mehr eine einzelne
Zuordnung, sondern die Eigenschaft, um die es geht: Jede Kachel
traegt ein Zeichen, und das von DogFather kommt kein zweites Mal
vor. Das haelt auch, wenn die Zeichen neu gezeichnet werden oder
eine sechste Rolle dazukommt -- eine abgeschriebene Paarliste
haette beim naechsten Umbau wieder danebengelegen.
Die zwei Haende teilen sich weiterhin eines, und das ist Absicht:
Sie haben denselben Untertitel ("vertritt und koordiniert") und
lesen sich als Paar. Geprueft wird deshalb nicht "alle
verschieden", sondern "DogFather ist einmalig". */
{
const zeichenVon = (rolle) => {
const stelle = wandCrew.text.indexOf(`data-rolle="${rolle}"`);
if (stelle < 0) return null;
return (/href="(#r-[a-z]+)"/.exec(wandCrew.text.slice(stelle, stelle + 400)) || [])[1] || null;
return (/href="(#r-[a-z-]+)"/.exec(wandCrew.text.slice(stelle, stelle + 400)) || [])[1] || null;
};
const [zAdmin, zHand, zModi] = ["admin", "hand", "modi"].map(zeichenVon);
ok(!!zAdmin && zHand === zAdmin,
`crew.: die Rechte Hand traegt dasselbe Zeichen wie DogFather (${zHand} / ${zAdmin})`);
const zeichen = Object.fromEntries(ERWARTETE_REIHE.map((r) => [r, zeichenVon(r)]));
const ohne = ERWARTETE_REIHE.filter((r) => !zeichen[r]);
ok(ohne.length === 0 && ERWARTETE_REIHE.length > 0,
ohne.length ? `crew.: ohne Zeichen: ${ohne.join(", ")}`
: `crew.: jede der ${ERWARTETE_REIHE.length} Kacheln traegt ein Zeichen`);
const zAdmin = zeichen.admin;
const wieOft = Object.values(zeichen).filter((z) => z === zAdmin).length;
ok(!!zAdmin && wieOft === 1,
`crew.: DogFathers Zeichen (${zAdmin}) kommt genau einmal vor (${wieOft})`);
ok(zAdmin === "#r-krone", `crew.: und es ist die Krone (${zAdmin})`);
/* Das Zeichen muss es auch GEBEN. Ein `use` auf eine Kennung, die
nirgends steht, zeichnet nichts -- und zwar lautlos: keine
Fehlermeldung, kein leeres Kaestchen, einfach nichts. Genau so
saehe eine vertippte Kennung aus. */
ok(wandCrew.text.includes('id="r-krone"'),
"crew.: und die Krone ist auf der Seite auch definiert");
/* GEGENPROBE: Die Messung muss einen Verstoss auch sehen koennen.
Zwei erfundene Verteilungen, eine richtig, eine mit doppeltem
DogFather-Zeichen. */
const zaehl = (v) => Object.values(v).filter((z) => z === v.admin).length;
ok(zaehl({ admin: "#r-krone", hand: "#r-husky", modi: "#r-pfote" }) === 1
&& zaehl({ admin: "#r-husky", hand: "#r-husky", modi: "#r-pfote" }) === 2,
"crew.: Gegenprobe -- ein doppelt vergebenes Zeichen wuerde auffallen");
const zModi = zeichen.modi;
ok(!!zModi && zModi !== zAdmin, `crew.: der Modi ein eigenes (${zModi})`);
ok(zeichen.hand === zeichen.linke && !!zeichen.hand,
`crew.: die zwei Haende lesen sich als Paar (${zeichen.hand} / ${zeichen.linke})`);
}
/* Die Namen kommen aus den Kacheln, nicht aus einer Liste in gate.js --