Validierung und Qualitätssicherung
**Prüfung:** Sind alle erforderlichen Komponenten vorhanden?
Mehrschichtige Validierung
Ebene 1: Strukturvalidierung
Prüfung: Sind alle erforderlichen Komponenten vorhanden?
function validiereStruktur(layout) {
const erforderlich = ["ES", "IST", "HALB", "UHR", "VOR", "NACH"];
const fehlt = erforderlich.filter(wort => !layout.includes(wort));
if(fehlt.length > 0) {
return {gültig: false, fehler: `Fehlende Wörter: ${fehlt}`};
}
return {gültig: true};
}
Ebene 2: Nachbarschafts-Validierung
Prüfung: Gibt es identische benachbarte Buchstaben?
function prüfeNachbarn(raster, zeilen=10, spalten=11) {
for(let z = 0; z < zeilen; z++) {
for(let s = 0; s < spalten; s++) {
const index = z * spalten + s;
const zeichen = raster[index];
// Horizontal
if(s < spalten - 1 && zeichen === raster[index + 1]) {
return {fehler: `Dopplung bei Position ${index}`};
}
// Vertikal
if(z < zeilen - 1 && zeichen === raster[index + spalten]) {
return {fehler: `Dopplung bei Position ${index}`};
}
}
}
return {gültig: true};
}
Ebene 3: Schutzrechts-Compliance
Prüfung: Ist das Layout identisch mit geschützten Designs?
function prüfeSchutzrechte(layout) {
const geschützteLayouts = [
"ESKISTAFÜNFZEHNZWANZIG...", // Beispiel geschütztes Design
// Weitere geschützte Varianten
];
for(const geschützt of geschützteLayouts) {
if(vergleicheLayouts(layout, geschützt)) {
return {
gültig: false,
warnung: "Layout ist identisch mit geschütztem Design!",
hinweis: "Bitte eigenes Design entwickeln."
};
}
}
return {gültig: true};
}
Qualitätsmetriken
Lesbarkeit
- Durchschnittliche Anzahl beleuchteter Buchstaben
- Minimale/Maximale Wortlänge
- Gleichmäßige Verteilung
Effizienz
- Anzahl ungenutzter Felder
- Wiederverwendung von Buchstaben (z.B. FÜNF als Minute und Stunde)
Wartbarkeit
- Konsistente Positionierung
- Logische Gruppierung
- Dokumentation im Code