Kursvorlage
Würfel-Histogramm: Von Simulation zu Interaktion
Kurs zu Zufall, Zählen und pygame-Histogrammen

Didaktische Zielsetzung
Diese Kursvorlage führt schrittweise von einer einfachen Zufallssimulation zur interaktiven, grafischen Auswertung in pygame. Im Mittelpunkt steht der Aufbau einer nachvollziehbaren Datenbasis durch Zufallszahlen und Häufigkeitszählungen sowie deren Umsetzung in eine konsistente Programmlogik (Zählen, Prüfen, Zurücksetzen). Darauf aufbauend wird die Visualisierung als Histogramm entwickelt: Skalierung, Zeichnen von Balken und Einblenden zentraler Kennwerte. Die Vorlage verbindet damit Modellierung (Zählerstruktur, Zustandsvariablen), Strukturierung (Funktionen, Ereignisverarbeitung) und Implementierung in einem kompakten Programmablauf.
Kompetenzschwerpunkte
- Zufallszahlen mit
random.randinterzeugen und als wiederholbare Simulation in Funktionen strukturieren - Häufigkeiten in einer Zählliste (
counts[0..5]) korrekt über Indexbezug (Augenzahl minus 1) führen - Globalen Programmzustand (
total_rolls) kontrolliert verändern und mitglobalin Funktionen handhaben - Konsistenzprüfungen über Summenbildung (
sum(counts)) zur Fehlerdiagnose im Zählmodell einsetzen - pygame-Grundstruktur umsetzen (Initialisierung, Fenster, Hauptschleife, Event-Verarbeitung)
- Interaktion über Tastaturereignisse (SPACE/A/R) als Ansteuerung vorhandener Programmfunktionen gestalten
- Histogramm in pygame mit proportionaler Skalierung und Division-by-zero-Absicherung stabil visualisieren
Struktur der Bausteine
Würfeln: Zufall und Häufigkeiten zählen
Der Baustein etabliert die Zählerstruktur (Liste) und die Funktionslogik zum wiederholten Würfeln einschließlich Konsistenzprüfung als Grundlage der späteren Visualisierung.
pygame: Fenster, Schleife & Tastatursteuerung
Der Baustein überführt die bestehende Zähllogik in ein ereignisgesteuertes pygame-Programm mit Schleife, Taktung und Tastatursteuerung für zentrale Aktionen.
Histogramm: Balkenhöhen und Balken zeichnen
Der Baustein entwickelt die grafische Abbildung der Häufigkeiten als Balkendiagramm mit skalierter Balkenhöhe und robuster Behandlung von Startzuständen ohne Daten.
Histogramm: Text & Prozentwerte einblenden
Der Baustein ergänzt die Visualisierung um Textausgaben (Titel, absolute Werte, Prozentanteile) und stärkt damit die interpretierbare Auswertung der Simulation.

Pygame-Buttons: Zeichnen & Klicken
Der Baustein erweitert das Programm um klickbare Buttons auf Basis von `pygame.Rect` und verbindet Mausereignisse systematisch mit den vorhandenen Funktionen.
Inhalte im Überblick
| Baustein | Schwerpunkt | Dauer |
|---|---|---|
| Würfeln: Zufall und Häufigkeiten zählen | Zufallswürfe mit `random.randint(1,6)`; Häufigkeiten in `counts` zählen, `total_rolls` global führen und per `sum(counts)` prüfen. | 25 min |
| pygame: Fenster, Schleife & Tastatursteuerung | pygame-Grundgerüst mit Fenster, Schleife, QUIT-Handling und KEYDOWN-Steuerung (SPACE/A/R) inklusive Reset-Logik und Taktung. | 35 min |
| Histogramm: Balkenhöhen und Balken zeichnen | Proportionale Skalierung über `MAX_BAR_HEIGHT` und Zeichnen von sechs Balken im definierten Zeichenbereich, abgesichert gegen Division durch 0. | 35 min |
| Histogramm: Text & Prozentwerte einblenden | Text-Rendering mit `SysFont`, Anzeige von `total_rolls`, absoluten Häufigkeiten und Prozentwerten über den Balken mit robuster Berechnung bei 0 Würfen. | 35 min |
| Pygame-Buttons: Zeichnen & Klicken | Buttons per Konstanten und `pygame.Rect` zeichnen, Klicks per `MOUSEBUTTONDOWN`/`collidepoint` auswerten und Aktionen (1 Wurf/100x/Reset) auslösen. | 35 min |
Die Bausteine bauen fachlich nachvollziehbar aufeinander auf und machen Lernziele, Zustandsmodell und Auswertungsschritte transparent für die Unterrichtsplanung.
Nutzen Sie den Demo-Zugang, um die Vorlage zu erproben und die Parameter (Wurfanzahl, Darstellung, Interaktion) an Ihre Lerngruppe anzupassen.