The Queens Cupcake Lösung

Aus microbit - Das Schulbuch
Wechseln zu: Navigation, Suche

Detailschritte

Beginne das Beispiel damit, dass du alle notwendigen Variablen erstellst:

  • Die Variable "cupcake" stellt mittels eines "sprite" (Computergrafik, eine leuchtende LED am Micro:bit) den Cupcake dar.Block
  • Die Variable "cupcakeOnPlate" brauchst du, um überprüfen zu können, ob der Cupcake noch am Teller ist. Block
  • Mit der Variable "tolerance" kannst du den Schwierigkeitsgrad des Spieles einstellen. Setze den Wert für den Anfang auf 200. Block

Fällt der Cupecake vom Teller, ist das Spiel beendet. Die "while do" - Schleife überprüft genau das für dich. Während das Sprite (Cupcake) auf der Anzeige des Micro:bits ist, wird alles innerhalb der Schleife ausführt. Fliegt das Sprite vom Display, wird die Variable "cupcakeOnPlate" auf falsch gesetzt. Die "while do" - Schleife ist damit beendet und "Game over" wird am Display ausgegeben.Block

Wenn der Micro:bit in eine Richtung (links, rechts, vor, zurück) geneigt wird, soll das erkannt und ein Programmcode (Cupcake soll am Display in die richtige Richtung wandern) ausgeführt werden. Der Beschleunigungssensor liefert den Wert dafür sowohl für die x-Achse (links rechts) als auch für die y-Achse (vor, zurück). Für die 4 Richtungen, in die sich das Sprite bewegen kann, brauchst du also 4 Bedingungen.Block

Damit das Sprite in die gewünschte Richtung wandert, muss es entsprechend der Bedingung verändert werden: Wird der Micro:bit beispielsweise nach rechts geneigt, soll das Sprite um eine Position entlang der x-Achse wandern. Wenn das Sprite allerdings schon am vierten und letzten Punkt des rechten Displayrands steht und der Micro:bit weiterhin nach rechts geneigt ist, fällt der Cupcake von der Platte und das Spiel ist vorbei. Mit einer weiteren bedingten Anweisung, kannst du genau das programmieren:

  • Mit dieser bedingten Anweisung überprüfst du, ob sich der Cupcake (Sprite) noch am Tablett befindet. Ist das nicht der Fall, wird die Variable "cupcakeOnPlate" auf falsch gesetzt und das Spiel ist beendet. Andernfalls wandert der Cupcake um eine Position nach rechts.Block
Zum Schluss musst du diese beiden bedingten Anweisungen nur mehr richtig verschachteln und für alle vier Richtungen anpassen.
basic.showString("3-2-1 Go")
let cupcake = game.createSprite(2, 2)
let cupcakeOnPlate = true
let tolerance = 200
while (cupcakeOnPlate == true) {
    if (input.acceleration(Dimension.X) > tolerance) {
        if (cupcake.get(LedSpriteProperty.X) == 4) {
            cupcakeOnPlate = false
        } else {
            cupcake.change(LedSpriteProperty.X, 1)
            basic.pause(200)
        }
    }
}
basic.showString("Game Over")

</spoiler>

Zurück zur Aufgabe