Zusammenfassung
Zusammenfassung: CharGraph Zeitberechnung
Kernprinzipien
- Unterschiedliche Zeitangaben tragen unterschiedlich viel Information
- Modifikatoren erhöhen die Entropie (Präzision)
- Layout-Komplexität korreliert mit Entropie
- Natürliche Sprache ist informationstheoretisch optimiert
Modifikatoren-Übersicht
| Modifikator | Bedeutung | Einsatz |
|---|---|---|
| KURZ | Kurz nach/vor | :01, :02, :28-:29, :31, :58 |
| BALD | Bald (2-3 Min vor Marke) | :03-:04, :08-:09, :13-:14, :27-:29, :34, :56-:59 |
| FAST | Fast (1 Min vor Marke) | :04, :09, :14, :19, :29, :34, :39, :49, :54, :59 |
Prioritätsregeln
1 Minute vor 5er-Marke (:04, :09, :14, :19, :34, :39, :49, :54, :59)
FAST > BALD
:04mit FAST+BALD → "FAST FÜNF NACH":09mit FAST+BALD → "FAST ZEHN NACH"
2 Minuten vor 5er-Marke (:03, :08, :13, :18, :33, :38, :53)
BALD > FAST (wenn beide vorhanden)
:03mit BALD+FAST → "BALD FÜNF NACH":33mit BALD+FAST → "BALD FÜNF NACH HALB"
Vor HALB (:28-:29)
FAST > KURZ > BALD
:29mit FAST → "FAST HALB":28mit KURZ → "KURZ VOR HALB"
Vor voller Stunde (:57-:59)
- :59: FAST > KURZ > BALD
- :58: KURZ > BALD/FAST
- :57: BALD (nur mit KURZ)
Spezialfälle
| Minute | Regel | Grund |
|---|---|---|
| :02 | KURZ komplett deaktiviert | Zu nah an :05 |
| :27 | BALD nur bei allen 3 Modifikatoren | 3 Min vor :30 ist zu weit |
| :31 | KURZ nur mit FAST | Verhindert Kollisionen |
| :44 | BALD DREIVIERTEL benötigt DREIVIERTEL-Wort | Fallback auf Standardtext |
Imperativ vs. Deklarativ
V0.1 - Imperativ (285 Zeilen)
if(mm === 0) { /* Code */ }
else if(mm === 1) { /* Code */ }
else if(mm === 2) { /* Code */ }
// ... 55 weitere else-if Blöcke ❌
Probleme:
- ❌ Schwer lesbar und wartbar
- ❌ Fehleranfällig (Copy-Paste-Fehler)
- ❌ Schwer testbar (viele Pfade)
V0.2 - Deklarativ (60 Regel-Objekte)
const MINUTE_RULES = [
{ range: [0, 0], handler: (ctx) => [...] },
{ range: [1, 2], handler: (ctx) => [...] },
// ... 58 weitere Regeln ✅
];
Vorteile:
- ✅ Selbstdokumentierend
- ✅ Änderungen isoliert
- ✅ Einfach testbar
- ✅ Erweiterbar
Visuelle Punkt-Logik
Grundprinzip
- Positive Offsets (+ LEDs von links): addieren zur angezeigten Zeit
- Negative Offsets (- LEDs von rechts): subtrahieren von der angezeigten Zeit
Beispiele
"FÜNF NACH EINS" (13:07)
- Angezeigt: 13:05 | Offset: +2 | LEDs: ●● von links | Berechnung: 5 + 2 = 7 ✓
"FÜNF VOR ELF" (10:53)
- Angezeigt: 10:55 | Offset: -2 | LEDs: ●● von rechts | Berechnung: 55 - 2 = 53 ✓
"BALD ZWEI" (13:58)
- Angezeigt: 14:00 | Offset: -2 | LEDs: ●● von rechts | Berechnung: 60 - 2 = 58 ✓
Qualitätssicherung
Mehrschichtige Validierung
-
Strukturvalidierung
- Sind alle erforderlichen Wörter vorhanden? (ES, IST, HALB, UHR, VOR, NACH)
-
Nachbarschafts-Validierung
- Gibt es identische benachbarte Buchstaben?
-
Schutzrechts-Compliance
- Ist das Layout identisch mit geschützten Designs?
Test-Kategorien
- Äquivalenzklassen (00:00, 12:00, X:05, X:10, ...)
- Grenzwerte (Mitternacht, Mittag, Tagesübergang)
- Spezialfälle (Minute 04, 29, 45-49)
CAD-Editor Features
Benutzeroberfläche:
- ✓ Interaktives 11×10 Raster
- ✓ Drag-and-Drop Wort-Palette
- ✓ Undo/Redo-Funktionalität
- ✓ Live-Zeit-Simulation
- ✓ Echtzeit-Beleuchtungs-Vorschau
- ✓ Punkt-Anzeige-Simulation
- ✓ 3D-STL Export
Intelligente Funktionen:
- Durchstreichung verwendeter Wörter
- Hover-Effekt zur Position-Hervorhebung
- Keyboard-Navigation (← / →)
- localStorage für Palette-Status
Lernziele
Schüler (Sek I + II):
- Imperative vs. Deklarative Programmierung
- Design Patterns (Rule Engine, Strategy)
- Refactoring-Techniken
- Code-Smell-Erkennung
Studenten (Hochschule):
- Wartbarkeitsmetriken (Zyklomatische Komplexität)
- Software-Engineering
- Functional Programming
- DSLs (Domain-Specific Languages)
Kompetenzentwicklung
Algorithmisches Denken:
- Problemzerlegung, Abstraktion, Mustererkennung
Software-Engineering:
- Design Patterns, Testing, Validierung
Mathematik/Logik:
- Modulo-Arithmetik, Constraint-Satisfaction, Boolean Logic
User Experience:
- Interface-Design, Feedback-Mechanismen, visuelles Design
Erweiterungsmöglichkeiten
Hardware:
- Spiele-Konsole (Snake, Tetris)
- Daten-Visualisierung (Spektrum, Temperatur)
- IoT-Integration (WLAN, MQTT, APIs)
Software:
- Multi-Language Support (Englisch, Französisch)
- Animations-Engine
- KI-Integration (automatische Optimierung)
Code-Metriken: V0.1 vs. V0.2
| Metrik | V0.1 | V0.2 | Verbesserung |
|---|---|---|---|
| Zeilen Code | 285 | 80 | -72% |
| Zyklomatische Komplexität | 150 | 3-5 | -95% |
| Test-Coverage | ~60% | 95% | +58% |
| Änderungsaufwand | 30 Min | 5 Min | -83% |
| Bugs pro 100 LOC | ~4 | <1 | -75% |