Calliope mini - Spaß durch Programmieren

Entwicklungsumgebungen

Ich packe meinen Koffer... (mit Zahlen)

Ziel: Der Calliope mini zeigt nach dem ersten Drücken der Taste B für eine Sekunde eine zufällige Zahl zwischen 0 und 3 an. Danach muss der Nutzer durch Berühren der Pins 0 bis 3 diese Zahl eingeben. War es die richtige Zahl, zeigt der Calliope mini nach dem Drücken der Taste B hintereinander zwei zufällige Zahlen an, die der Nutzer wieder durch Berühren der Pins in der richtigen Reihenfolge bestätigen muss. Die Anzahl der gezeigten Zahlen wird solange erhöht, bis der Nutzer eine falsche Reihenfolge eingibt.

Das Programm besteht aus vier Funktionen, die einzeln programmiert und getestet werden.

  1. Liste der Zufallszahlen anzeigen
  2. Liste der Zufallszahlen erweitern
  3. Pins abfragen
  4. Testen

Liste anzeigen

Zuerst wird nur eine Liste (Array) mit drei Elementen erzeugt und angezeigt. Jede Zahl aus der Liste erscheint für 1 Sekunde (1000 ms) auf dem Bildschirm, der danach gelöscht wird. Damit besser sichtbar wird, dass nun eine eue Zahl erscheint, wird nach dem Löschen des Bildschirms 100 ms gewartet. Im Spiel kann eine Zahl ja auch mehrmals hintereinander angezeigt werden und das muss erkennbar sein.
Damit die Zahlen nicht über den Bildschirm wandern, erfolgt die Anzeige nicht als Text, sondern als Zeichen.

liste_zeigen

Liste erweitern

Im nächsten Schritt wird die Liste einfach um eine weitere Zufallszahl erweitert und der zaehler um Eins erhöht.

Zur Zählweise: Wenn in der Liste 3 Zahlen enthalten sind, haben sie in der Liste die Nummern 0, 1 und 2. Die Variable zaehler enthält eine 3. Die Schleife zur Ausgabe zählt dann von 0 bis <3, also bis 2. In der Funktion zur Erweiterung der Liste wird eine neue Zahl an der Stelle 3 angefügt. Und danach erst darf die Variable zaehler um Eins erhöht werden.

Die Funktion zeige_liste zeigt dann alle Elemente von 0 bis <4 an.

Zum Schluss wird beim Start des Programms die Liste mit nur noch einer Zufallszahl gefüllt und der zaehler auf 1 gesetzt. Beim Drücken von B erscheint zum Beginn nur noch eine Zahl und bei jedem weiteren Druck eine Zahl mehr.

liste_zeigen
liste_erweitern

Pins abfragen

Als nächstes kümmert man sich um die Pinabfrage. Der eigentliche Test auf die richtige Reihenfolge der Zahlen kommt erst danach!

Ziel ist es, beim Drücken eines Pins die Nummer des Pins anzuzeigen und beim Loslassen des Pins den Bildschirm wieder zu löschen. Das entspricht der Übung Fass mich an!"

Damit das Anfassen nicht prellt, also der Pin mehrmal ausgelöst wird, muss sofort nach der ersten Berührung eine kurze Zeit gewartet werden und dann über ein Variable der Pin bis zum Loslassen gesperrt werden. Beim Loslassen wird die Variable dann wieder zurückgesetzt.

Wenn es für den Pin 0 funktioniert, erweitert man das Programm um die anderen drei Pins.

liste_zeigen

Wenn alles perfekt zusammengestellt wurde, reagiert der Calliope mini auf das Berühren der einzelnen Pins. Achtung: Berühren heißt, der Pin wird über die Finger mit dem Minus-Pin verbunden.

Das Hauptprogramm besteht nun wieder aus den drei Funktionen zum Anzeigen, Testen und zum Liste erweitern. Die Testfunktion muss aber mehrmals durchlaufen werden; und zwar so lange, bis der Spieler eine Fehleingabe gemacht hat oder die ganze Reihe fehlerlos eingegeben hat. Dafür ist die neue Variable test_fertig, die ein falsch oder ein wahr enthalten kann.

Wenn es notwendig ist, den Test zu beenden, wird die Variable auf wahr gesetzt.

liste_zeigen

Reihenfolge testen

Jetzt ist nur noch der Test zu programmieren. Es muss die fogenden Bedingungen erfüllen:

  • Nach dem Berühren eines Pins darf er bis zum Berühren des nächsten Pins nur einmal aufgerufen werden.
  • Er vergleicht die Nummer des gedrückten Pins mit der aktuellen Stelle im Array.
  • Falls die beiden Ziffern nicht übereinstimmen, wird das Spiel an dieser Stelle komplett beendet.
  • Falls die beiden Ziffern übereinstimmen, wird geprüft, ob das Ende des Arrays erreicht ist.
  • Wenn das der Fall ist, wird das Array um eine Zahl erweitert...
  • Wenn nicht, wird auf den nächsten Vergleich gewartet.

neue_variabeln

Es sind zwei neue Variable zu erzeugen. Beide sind vom Typ logischer Wert und zu Beginn auf falsch, also nein gesetzt.

Die neue und vierte Funktion macht nach ihrem Aufruf zuerst nichts anderes, als die LED in blau aufleuchten zu lassen und durch die Variable ist_vergleich eine weiteren Aufruf zu unterdrücken.

neue_variabeln

Die Variabe ist_vergleich muss nach dem Loslassen des Pins wieder auf falsch gesetzt werden.

neue_variabeln

In der Funktion vergleich wird der Inhalt von pin_merker mit dem aktuellen Eintrag in der Liste verglichen und entschieden, wie es weitergeht.

neue_variabeln

Damit funktioniert das Spiel im Prinzip schon recht gut. Es lassen sich aber noch Feinheiten hineinprogrammieren, die das Spiel noch fluffiger laufen lassen. Z.B. kann man zum Schluss noch anzeigen lassen, wieviele Zahlen man sich fehlerfrei merken konnte.

Liste anzeigen

Zuerst wird nur eine Liste (Array) mit drei Elementen erzeugt und angezeigt. Jede Zahl aus der Liste erscheint für 1 Sekunde (1000 ms) auf dem Bildschirm, der danach gelöscht wird. Damit besser sichtbar wird, dass nun eine eue Zahl erscheint, wird nach dem Löschen des Bildschirms 100 ms gewartet. Im Spiel kann eine Zahl ja auch mehrmals hintereinander angezeigt werden und das muss erkennbar sein.

liste_zeigen

Liste erweitern

Im nächsten Schritt wird die Liste einfach um in einer weiteren Funktion eine neue Zufallszahl erweitert.

Zum Schluss wird beim Start des Programms die Liste mit nur noch einer Zufallszahl gefüllt. Beim Drücken von B erscheint zum Beginn nur noch eine Zahl und bei jedem weiteren Druck eine Zahl mehr.

liste_erweitern

Pins abfragen

Als nächstes kümmert man sich um die Pinabfrage. Der eigentliche Test auf die richtige Reihenfolge der Zahlen kommt erst danach!

Ziel ist es, beim Drücken eines Pins die Nummer des Pins anzuzeigen und beim Loslassen des Pins den Bildschirm wieder zu löschen. Das entspricht der Übung Fass mich an!"

Wenn es für den Pin 0 funktioniert, erweitert man das Programm um die anderen drei Pins.

liste_zeigen

Wenn alles perfekt zusammengestellt wurde, reagiert der Calliope mini auf das Berühren der einzelnen Pins. Achtung: Berühren heißt, der Pin wird über die Finger mit dem Minus-Pin verbunden.

Das Hauptprogramm besteht nun wieder aus den drei Funktionen zum Anzeigen, Testen und zum Liste erweitern. Die Testfunktion muss aber mehrmals durchlaufen werden; und zwar so lange, bis der Spieler eine Fehleingabe gemacht hat oder die ganze Reihe fehlerlos eingegeben hat. Dafür ist die neue Variable test_fertig, die ein falsch oder ein wahr enthalten kann.

Wenn es notwendig ist, den Test zu beenden, wird die Variable auf wahr gesetzt.

liste_zeigen

Reihenfolge testen

Jetzt ist nur noch der Test zu programmieren. Es muss die fogenden Bedingungen erfüllen:

  • Nach dem Berühren eines Pins darf er bis zum Berühren des nächsten Pins nur einmal aufgerufen werden.
  • Er vergleicht die Nummer des gedrückten Pins mit der aktuellen Stelle im Array.
  • Falls die beiden Ziffern nicht übereinstimmen, wird das Spiel an dieser Stelle komplett beendet.
  • Falls die beiden Ziffern übereinstimmen, wird geprüft, ob das Ende des Arrays erreicht ist.
  • Wenn das der Fall ist, wird das Array um eine Zahl erweitert...
  • Wenn nicht, wird auf den nächsten Vergleich gewartet.

neue_variabeln

Es wird eine neue Variable ist_vergleich erzeugt, die vom Typ logischer Wert ist. Wenn der Inhalt der Variablen

Die neue und vierte Funktion macht nach ihrem Aufruf zuerst nichts anderes, als die LED in blau aufleuchten zu lassen und durch die Variable ist_vergleich eine weiteren Aufruf zu unterdrücken.

neue_variabeln

Die Variabe ist_vergleich muss nach dem Loslassen des Pins wieder auf falsch gesetzt werden.

neue_variabeln

In der Funktion vergleich wird der Inhalt von pin_merker mit dem aktuellen Eintrag in der Liste verglichen und entschieden, wie es weitergeht.

neue_variabeln

Damit funktioniert das Spiel im Prinzip schon recht gut. Es lassen sich aber noch Feinheiten hineinprogrammieren, die das Spiel noch fluffiger laufen lassen. Z.B. kann man zum Schluss noch anzeigen lassen, wieviele Zahlen man sich fehlerfrei merken konnte.

zurück