Von Arek Socha unter der Lizenz CC0 1.0 via Pixabay

Simon Says mit BBC micro:bit

Modulbeschreibung

Modulbeschreibung

1. Spiel aufbauen

1. Spiel aufbauen

2. Der Quellcode

2. Der Quellcode

2.1 Speicherung

2.1 Speicherung

2.2 Spielsymbole

2.3 Endlich spielen

2.3 Endlich spielen

3. Spiel erweitern

3. Spiel erweitern

3.1 Spielrückmeldung

3.1 Spielrückmeldung

3.2 Schwierigkeitsgrad

3.2 Schwierigkeitsgrad

Downloadbereich

Downloadbereich

Was in diesem Abschnitt passiert

In diesem Schritt wirst du festlegen, welche Symbole im Spiel angezeigt werden können und welche Symbole auf deinen Alufolien-Buttons gemalt werden müssen. Dazu wirst du im Quellcode festlegen, auf welche Symbole das Spiel zurückgreift.

Jeder Zahl 0, 1 und 2 wird ein Symbol zugeordnet. In den Arrays aus Aufgabe 2.1 werden die Zahlen gespeichert. In dieser Aufgabe ordnest du jetzt jeder Zahl ein bestimmtes Symbol zu. Der Zahl 0 ist schon das Herz zugeordnet. Für diese Zuordnung wird der switch-case-Befehl verwendet.

Weitere mögliche Symbole

Heart
microbit-Heart.jpg
Yes
microbit-Yes.jpg
 No
microbit-No.jpg
Happy
microbit-Happy.jpg
 Sad
microbit-Sad.jpg
 TShirt
microbit-TShirt.jpg
 StickFigure
microbit-StickFigure.jpg
Duck
microbit-Duck.jpg
Umbrella
microbit-Umbrella.jpg 
Square
microbit-Square.jpg 

Aufgabenstellung

Ergänze den Quellcode bei "Aufgabe 2.2: Ergänze deinen Code hier:" so, dass zwei weitere Symbole den Zahlen 1 und 2 (und damit den Alufolien-Buttons 1 und 2) zugeordnet werden. Eine Übersicht, welche Symbole zur Verfügung stehen und wie sie benannt sind, findest du oben.

Hast du dich für zwei neue Symbole entschieden und den Code korrekt programmiert? Dann male die neuen Symbole auch auf deine Alufolien-Buttons, damit der Spieler weiß, welchen Button er bei welchem Symbol drücken muss.

Bearbeitungshinweis 1

Du benötigst zwei weitere mögliche Reaktionen auf die Aufforderungen 1 und 2. Eine Reaktion auf die Aufforderung 0 ist bereits im Quellcode umgesetzt. Für die weiteren Reaktionen kannst du dich an dieser ersten Reaktion orientieren.

Bearbeitungshinweis 2

Eine Reaktion auf eine weitere Aufforderung leitest du wie folgt ein:

case 1:
basic.showIcon(...

Bearbeitungshinweis 3

Ein beliebiges Symbol zeigst du mit dem Befehl

basic.showIcon(IconNames.Duck);

an. Hier wird beispielsweise eine Ente angezeigt. Ersetze das Stichwort "Duck" durch ein beliebiges anderes Stichwort aus der Liste der möglichen Symbole.

Bearbeitungshinweis 4

Denke daran, dass der Bildschirm des micro:bit wieder gelöscht werden muss:

basic.clearScreen();

Anschließend muss dem Programm mit dem Befehl 

break;

noch erklärt werden, dass der Reaktionsblock nun beendet ist.

 

Lösung

// Zeigt ein Icon auf dem LED-Display an.
function zeigeIcon(x: number) {
switch (x) {
case 0:
basic.showIcon(IconNames.Heart);
basic.clearScreen();
break;
case 1:
basic.showIcon(IconNames.Duck);
basic.clearScreen();
break;
case 2:
basic.showIcon(IconNames.Square);
basic.clearScreen();
break;
}
}

Expertenwissen

switch-case - Was ist das überhaupt?

Schauen wir uns zunächst an, wie der Code, den du hier ergänzen sollst, anfängt:

// Zeigt ein Icon auf dem LED-Display an.
function zeigeIcon(x: number) {
switch (x) {
case 0:
basic.showIcon(IconNames.Heart);
basic.clearScreen();
break;
//Aufgabe 2.2: Ergaenze deinen Code hier:

}
}

Die erste Zeile ist ein Kommentar, diese kennst du bereits aus Aufgabe 2.1. Die zweite Zeile leitet eine neue Methode ein. Das kannst du dir in etwa wie ein Programm in einem Programm vorstellen. Dieses Unterprogramm trägt den Namen zeigeIcon. Was das genau bedeutet und wofür so ein Unterprogramm praktisch sein kann, ist hier nicht weiter interessant.

Viel wichtiger ist die dritte Zeile: switch (x). Switch ist ein englisches Wort und bedeutet im Deutschen so viel wie Schalter, oder umschalten. Dieser Befehl ermöglicht es dem Programm unterschiedliche Dinge auszuführen, je nachdem, welche Eingabe, oder anders gesagt, welche Aufforderung das Programm an dieser Stelle bekommt.

Du kannst es dir wie ein Gespräch mit einem Freund vorstellen: Sagt dir jemand "Hallo!" reagierst du darauf vermutlich mit einem "Hi". Sagt dir die gleiche Person aber "Tschüss, bis morgen", so reagierst du nicht mit einem "Hi", sonder vermutlich eher mit einem "Auf Wiedersehen".

Genauso funktioniert auch der switch-Befehl: switch (x) leitet so eine Entscheidung ein. Der Befehl case 0 ist dann eine erste mögliche Reaktion: Wenn x den Wert 0 hat (wenn also dein Freund x dir "Hallo!" sagt), dann reagiert das Programm mit den Befehlen basic.showIcon(IconNames.Heart); und basic.clearScreen(); darauf (du würdest vielleicht mit "Hi" reagieren). Der Befehl break; sagt dem Programm dann, dass die Reaktion auf die Aufforderung 0 vorbei ist und eine neue Reaktion auf eine andere Aufforderung kommen kann.

Diese Zeilen machen also folgendes: immer, wenn das Programm eine 0 in dem Array findet, zeigt es ein Herz auf dem micro:bit an.

In der oben erklärten Methode zeigeIcon werden die im Spiel nutzbaren Symbole festgelegt. Da das Spielbrett Platz für 3 verschiedene Symbole bietet, werden in dieser Methode nach deiner Bearbeitung 3 Symbole den Zahlen 0 bis 2 zugeordnet. Das erste Symbol, ein Herz, ist im Quellcode schon zugeordnet worden. Deine Aufgabe ist es also nun, zwei weitere Symbole den Zahlen 1 und 2 (und damit auch den Pins 1 und 2 am micro:bit) zuzuordnen: