Calliope mini - Spaß durch Programmieren

Entwicklungsumgebungen

Doch dann kam der Regen...

Ziel: In einem Reaktionsspiel tropft es zufällig auf dem Bildschirm "von der Decke". Es gilt, die Tropfen aufzufangen. Dazu wird ein Tropfenfänger in der unteren Bildschirmzeile mit den Tasen A und B hin- und hergejagt.

Es tropft

Die Tropfen werden als leuchtende LEDs dargestellt, die zufällig spaltenweise nach unten laufen. Die LED leuchtet in der oberen Zeile auf, wird nach einer kurzen Zeit gelöscht und leuchtet sofort eine Zeile darunter wieder auf
Das Verweilen in einer Zeile könnte mit dem Warte-Befehl realisiert werden. Das geht aber nicht, da der Calliope mini wärend dieser Zeit auf einen Tastendruck nicht reagiert.

Also wird der Wartezyklus mit dem Zeitgeber realisiert.

Die Wartezeit zwischen dem Wechsel der Tropfen wird auf 200 ms festgelegt. In der Variablen zeit wird die vergangene Zeit aufsummiert.
Wenn der Zeitgeber größer ist als diese Zeit, wird der Tropfen eine Zeile nach unten bewegt.
Danach wird in der Variablen zeit der aktuelle Wert des Zeitgebers plus die 200 ms wartezeit abgelegt. Wenn der Zeitgeber dann diesen Wert erreicht hat, wird der Tropfen um eine Zeile nach unten bewegt.
Ist die Zeilenzahl größer als 4, der Tropfen also unten angekommen ist, fällt der nächste Tropfen in einer zufällig bestimmten Spalte.
Calliope mini-Tropfen
Wenn das Programm läuft, werden die Blöcke, die den Tropfen nach unten fallen lassen, in einer Funktion zusammengefasst. Dadurch wird das Hauptprogramm übersichtlicher.
Calliope mini-Tropfen

Der Eimer wird zum Tropfen bewegt

Im nächsten Schritt wird der Auffangeimer als leuchtender Punkt in der unteren Zeile programmiert. Er lässt sich mit den Tasten A und B bewegen.

Dafür werden drei neue Variablen benötigt. Sie speichern

  1. die aktuelle Position des Eimers.
  2. die Information, ob die Taste A gedrückt wurde.
  3. die Information, ob die Taste B gedrückt wurde.

 

Calliope mini-Tropfen

Gleich zu Beginn der unendlichen Schleife wird der Eimer als Punkt dargestellt. Da in den folgenden Schritten die Variable spalte_topf mit den Tasten A und B geändert wird, ändert sich dann auch die Position des Topfes.

Calliope mini-Tropfen

Die Abfrage der Tasten A und B erfolgt wie im Abschnitt Warten ist doof beschrieben.
Im Bild ist der Teil für die Taste A dargestellt. Für die Taste B ist es ähnlich.

Calliope mini-Tropfen

Wenn bis hier hin alles richtig programmiert wurde, tropft das Wasser unablässig von der Decke und der Eimer lässt sich mit A und B verschieben.

Gefangen? Und es hört auf, langsam zu regnen.

Wenn der Tropfen unten angekommen ist, wird in der Funktion tropfen geprüft, ob der Eimer auch an dieser Position ist. Wenn ja, wird die LED grün aufleuchten, ansonsten rot.
Damit man die Farben richtig sehen kann, muss das Programm danach 500 ms warten. Das ist hier möglich, da während dieser Zeit kein Tropfen fällt und der Eimer nicht bewegt werden muss.
Diese halbe Sekunde muss aber zur Variablen zeit addiert werden. Ansonsten würde die LED in der oberen Zeile praktisch nicht aufleuchten.

Calliope mini-Tropfen

Es können nun weitere Ergänzungen hinzugefügt werden:

  • Aller 10 Tropfen wird die Wartezeit kleiner. Damit fallen die Tropfen immer schneller. Realisiert wird das über die Modulo-Funktion.
  • Wenn eine bestimmte Anzahl von Tropfen nicht gefangen wurden, ist das Spiel beendet.
  • Als Auswertung kann die Anzahl der gefangenen Tropfen angezeigt werden oder das erreichte Level...
  • ....

Es tropft

Die Tropfen werden als leuchtende LEDs dargestellt, die zufällig spaltenweise nach unten laufen. Die LED leuchtet in der oberen Zeile auf, wird nach einer kurzen Zeit gelöscht und leuchtet sofort eine Zeile darunter wieder auf
Das Verweilen in einer Zeile könnte mit dem Warte-Befehl realisiert werden. Das geht aber nicht, da der Calliope mini wärend dieser Zeit auf einen Tastendruck nicht reagiert.

Also wird der Wartezyklus mit dem Zeitgeber realisiert.

Die Wartezeit zwischen dem Wechsel der Tropfen wird auf 200 ms festgelegt. In der Variablen zeit wird die vergangene Zeit aufsummiert.
Wenn der Zeitgeber größer ist als diese Zeit, wird der Tropfen eine Zeile nach unten bewegt.
Danach wird in der Variablen zeit der aktuelle Wert des Zeitgebers plus die 200 ms wartezeit abgelegt. Wenn der Zeitgeber dann diesen Wert erreicht hat, wird der Tropfen um eine Zeile nach unten bewegt.
Ist die Zeilenzahl größer als 4, der Tropfen also unten angekommen ist, fällt der nächste Tropfen in einer zufällig bestimmten Spalte.
Calliope mini-Tropfen
Wenn das Programm läuft, werden die Blöcke, die den Tropfen nach unten fallen lassen, in einer Funktion zusammengefasst. Dadurch wird das Hauptprogramm übersichtlicher.
Calliope mini-Tropfen

Der Eimer wird zum Tropfen bewegt

Im nächsten Schritt wird der Auffangeimer als leuchtender Punkt in der unteren Zeile programmiert. Er lässt sich mit den Tasten A und B bewegen.

Dafür werden drei neue Variablen benötigt. Sie speichern

  1. die aktuelle Position des Eimers.
  2. die Information, ob die Taste A gedrückt wurde.
  3. die Information, ob die Taste B gedrückt wurde.

 

Calliope mini-Tropfen

Gleich zu Beginn der unendlichen Schleife wird der Eimer als Punkt dargestellt. Da in den folgenden Schritten die Variable spalte_topf mit den Tasten A und B geändert wird, ändert sich dann auch die Position des Topfes.

Calliope mini-Tropfen

Die Abfrage der Tasten A und B erfolgt wie im Abschnitt Warten ist doof beschrieben.
Im Bild ist der Teil für die Taste A dargestellt. Für die Taste B ist es ähnlich.

Calliope mini-Tropfen

Wenn bis hier hin alles richtig programmiert wurde, tropft das Wasser unablässig von der Decke und der Eimer lässt sich mit A und B verschieben.

Gefangen? Und es hört auf, langsam zu regnen.

Wenn der Tropfen unten angekommen ist, wird in der Funktion tropfen geprüft, ob der Eimer auch an dieser Position ist. Wenn ja, wird die LED grün aufleuchten, ansonsten rot.
Damit man die Farben richtig sehen kann, muss das Programm danach 500 ms warten. Da ist hier möglich, da während dieser Zeit kein Tropfen fällt und der Eimer nicht bewegt werden muss.
Diese halbe Sekunde muss aber zur Variablen zeit addiert werden. Ansonsten würde die LED in der oberen Zeile praktisch nicht aufleuchten.

Calliope mini-Tropfen

Es können nun weitere Ergänzungen hinzugefügt werden:

  • Aller 10 Tropfen wird die Wartezeit kleiner. Damit fallen die Tropfen immer schneller. Realisiert wird das über die Modulo-Funktion.
  • Wenn eine bestimmte Anzahl von Tropfen nicht gefangen wurden, ist das Spiel beendet.
  • Als Auswertung kann die Anzahl der gefangenen Tropfen angezeigt werden oder das erreichte Level...
  • ....

zurück