Von User 422737 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.2 Spielsymbole

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

Nachdem du dich nun mit dem Online-Editor vertraut gemacht hast, wirst du nun noch fehlende Funktionen ergänzen und das Spiel fertig stellen.

Deine erste Aufgabe besteht darin, dem Programm eine Möglichkeit zu geben, die Spielereingaben zu speichern, damit es am Ende einer Spielrunde entscheiden kann,  welche Symbole der Spieler richtig und welche er falsch gedrückt hat. Für die Speicherung wirst du so genannte Arrays benutzen. Lies dir zunächst die Aufgabenstellung durch und bearbeite sie anschließend mit deiner Partnerin/deinem Partner. Solltest du nicht weiterkommen, so helfen dir die Bearbeitungshinweise 1 bis 3.

Aufgabenstellung

Erstelle drei weitere Arrays.

Um die Spielereingaben speichern zu können, muss der Quellcode ab Zeile 10 "Aufgabe 2.1: Ergänze deinen Code hier:" ergänzt werden. Lege 3 weitere Arrays an. Berücksichtige dabei folgende Dinge:

  • Du benötigst 3 neue Arrays, für jedes Level eines.
  • Die Arrays müssen die Namen "eingabe1", "eingabe2" und "eingabe3" haben.
  • Das Array für das erste Level, "eingabe1" muss Platz für drei Zahlenwerte haben. Das Array für Level 2 benötigt fünf Speicherplätze und das für Level 3 sieben.
  • Jeder Arrayeintrag soll zu Beginn den Wert 0 haben.

Bearbeitungshinweis 1

Ein neues Array mit dem Namen "olaf" und Platz für 2 Speicherplätze erstellst du mit folgendem Befehl:

let olaf = [0, 0];

Überlege dir nun, wie deine Arrays heißen müssen und wie viel Platz sie bieten müssen, um die Aufgabenstellung zu erfüllen.

Bearbeitungshinweis 2

Orientiere dich an den Arrays für die Speicherung der Levelsymbole.

Bearbeitungshinweis 3

Die Arrays für die Levelsymbole findest du in Zeile 5 bis 8:

//Arrays: Reihenfolge der Icons
let level1 = [0, 0, 0];
let level2 = [0, 0, 0, 0, 0];
let level3 = [0, 0, 0, 0, 0, 0, 0];

Überlege dir nun, was du ändern musst, um die Aufgabenstellung zu erfüllen. Änderbar sind der Name und die Anzahl der Speicherplätze eines Arrays.

Lösung

//Aufgabe 2.1: Ergänze deinen Code hier:
let eingabe1 = [0, 0, 0];
let eingabe2 = [0, 0, 0, 0, 0];
let eingabe3 = [0, 0, 0, 0, 0, 0, 0];

Expertenwissen

Ein Array - was ist das überhaupt?

Die Speicherung der benutzten Symbole erfolgt also in Arrays. Ein Array kann man sich wie ein Regal vorstellen, das eine bestimmte Anzahl von Fächern hat. So wie jedes Regal eine feste Anzahl von Fächern hat, so hat auch jedes Array eine feste Anzahl an Speicherplätzen. Diese Anzahl der Speicherplätze wird zu Beginn festgelegt und kann danach nicht mehr verändert werden.

Arrays haben, im Gegensatz zu echten Regalen, allerdings zwei Besonderheiten:

  1. In einem Array können nur Dinge vom gleichen Typ gespeichert werden. In unserem Beispiel des Regals würde das bedeuten, dass wir in unserem Regal beispielsweise nur Bücher lagern können. Ist das Regal einmal als Bücherregal gebaut worden, so können darin keine Filme, Handys oder andere Dinge abgelegt werden. Die Arrays in unserem Programm speichern allerdings keine Bücher, sondern Zahlen. Jede Zahl steht dabei für ein bestimmtes Symbol (siehe dazu Aufgabe 2.2).
  2. In einem "Fach" eines Arrays kann nur eine Information gespeichert werden. In unserem Bücherregalbeispiel bedeutet das, dass wir in jedes Fach nur ein einziges Buch stellen können. Möchten wir in unserem Regal also 6 Bücher lagern, so benötigen wir 6 einzelne Fächer dafür. Das Array in unserem Quellcode braucht also genau so viele Fächer, wie es Zahlen abspeichern soll.
    Überlege dir, warum das Bücherregal im obigen Bild genau 3 Bücher abspeichern kann, wenn es genauso wie ein Array funktionieren würde.

Arrays in JavaScript

Wie jede Sprache, so benutzt auch das hier verwendete JavaScript eine bestimmte Syntax und Semantik. Wie du ein Array in JavaScript erstellst, siehst du am Beispiel des Arrays für Level 1. Dieses Array speichert die in Level 1 angezeigten Symbole als Zahl. Dadurch weiß das Programm, welche Symbole es im ersten Level anzeigen muss und kann im Nachhinein kontrollieren, welche Symbole der Spieler richtig gedrückt hat.

let level1 = [0, 0, 0];

Dabei leitet das Stichwort let die Definition einer Variablen ein, in unserem Fall eine Variable vom Typ eines Arrays. Anschließend bekommt unser Array einen Namen, damit es im weiteren Verlauf des Programms "angesprochen" werden kann. Es heißt level1. Nach dem Gleichheitszeichen erfolgt die Zuweisung von Werten für die einzelnen "Regalfächer". In Level 1 sollen dem Spieler 3 Symbole angezeigt werden, die er sich merken soll. Also braucht das Array 3 Speicherplätze, für jedes anzuzeigende Symbol einen. In jedem dieser Speicherplätze wird eine Zahl gespeichert, die einem ganz bestimmten Symbol zugeordnet wird (mehr dazu in Aufgabe 2.2). Da zu Beginn noch nicht klar ist, welche Symbole gezeigt werden, werden zunächst alle Speicherplätze des Arrays mit dem Wert 0 belegt. Beendet werden alle Zeilen in JavaScript mit einem Semikolon: Das sagt dem Programm, dass der Befehl zu ende ist und nun ein neuer kommen kann.

Auf diese Weise werden im Quellcode zunächst 3 Arrays festgelegt: level1 mit 3 Speicherplätzen, level2 mit 5 Speicherplätzen und level3 mit 7 Speicherplätzen.