Das Grafiktool Blinkenlights ist ein sehr einfaches Beispiel einer Anwendung für die Pixelgrafik, vergleichbar mit der Erstellung von Icons oder Handylogos.
Durch den geringen Attribute- und Methodenumfang ist diese Grafikanwendung besonders für die Einführung der Objektorientierung im Bereich der Pixelgrafik nach einem vereinfachten, didaktisch angepassten UML-Standard geeignet.
Und so müssten die Klassendefinitionen für Blinkenpaint aussehen. Als Klassen ergeben sich:
- BLINKENPAINTFILM
- BLINKENPAINTBILD
- BLINKENPAINTFENSTER
Aus der Unterrichtserfahrung in der Klasse 8 hat sich dabei folgend Vorgehensweise als günstig erwiesen:
- Zeigen eines kleinen fertigen Filmes, der mit Blinkenpaint erstellt wurde.
- Einführung der Klasse BLINKENPAINTFILM und der dazugehören Attribute und des Attributwertebereich (AWB).
- Auswahl eines konkreten Bildes aus diesem Film.
- Einführung der Klasse BLINKENPAINTBILD und AWB.
- Betrachtung der einzelnen Fenster.
- Einführung der Klasse BLINKENPAINTFENSTER und AWB.
Hier die entsprechenden Klassendefinitionen:
Klasse BLINKENPAINTFILM in der Darstellung als Mindmap
BLINKENPAINTFILM |
name : herz_s; schlange_s; ... <<Dateinamen ohne Dateiendung>>
einzelbildanzahl : 1; .. ; 10; ...
wiederholung : ja; nein
breite : 1; ...; 18
hoehe : 1; ...; 8
|
oeffene_blinkenpaintfilm(Name)
speichere_blinkenpaintfilm()
speichere_unter_blinkenpaintfilm(Name)
neuer_blinkenpaintfilm()
einfuegen_leeres_blinkenpaintbild()
einfuegen_kopiertes_blinkenpaintbild()
loeschen_aktuelles_blinkenpaintbild()
duplizieren_aktuelles_blinkenpaintbild()
setze_wiederholung(Wert) |
Klasse BLINKENPAINTBILD in der Darstellung als Mindmap
BLINKENPAINTBILD |
nummer : 1; ... ; 10, ...
inhalt : Herz; Schlange; ... <<Inhaltsbezeichnung>>
pausenzeit : 50 ms; 100 ms; 150 ms; ...
farbtiefe : 1 Bit
aufloesung : 18 wpf <<windows per floor>>
|
veraendere_inhalt(neuer Inhalt)
setze_pausenzeit(Zeitspanne) |
Klasse BLINKENPAINTFENSTER in der Darstellung als Mindmap
BLINKENPAINTFENSTER |
farbe : gelb; schwarz
position : (1;1); (1;2); ...; (18;8) <<(Spalte;Zeile)>>
|
veraendere_inhalt(neuer Inhalt)
setze_pausenzeit(Zeitspanne)
|
|