The Queens Cupcake: Unterschied zwischen den Versionen
(25 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
== [[Datei:Icon_gluehbirne.png|20px|Icon]] Aufgabenstellung == | == [[Datei:Icon_gluehbirne.png|20px|Icon]] Aufgabenstellung == | ||
Pass auf, dass der Cupcake nicht vom silbernen Tablett rutscht, wenn er serviert wird! In diesem Spiel wird der Cupcake durch ein leuchtendes LED am | Pass auf, dass der Cupcake nicht vom silbernen Tablett rutscht, wenn er serviert wird! In diesem Spiel wird der Cupcake durch ein leuchtendes LED am BBC micro:bit simuliert. Das silberne Tablett wird durch den 5x5 LED-Raster des BBC micro:bit dargestellt. Der Spieler oder die Spielerin tragen den BBC micro:bit flach auf dem Handrücken im Raum herum und stellen sicher, dass sich der BBC micro:bit so wenig wie möglich bewegt. Mithilfe des Beschleunigungssensors stellt unser Programm fest, ob sich der BBC micro:bit neigt (vorwärts, rückwärts, links oder rechts). Ist das der Fall, bewegt sich der Cupcake (leuchtendes LED) auf dem silbernen Tablett (5x5 LED-Raster) in die jeweilige Richtung. Das Spiel endet, wenn sich das leuchtende LED im äußeren Rand des LED-Rasters befindet und der BBC micro:bit weiter geneigt wird. Ist das zu leicht? Dann versuche beim Servieren des Cupcakes zusätzlich ein Sportgerät (Pedalos, Hula-Hoop-Reifen, Basketball) zu verwenden. | ||
Der Spieler oder die Spielerin | |||
== [[Datei:icon_material.png|20px|Icon]] Materialien == | == [[Datei:icon_material.png|20px|Icon]] Materialien == | ||
* Ein BBC | * Ein BBC micro:bit | ||
*Sportgeräte: | |||
**Bälle zum Prellen oder Tribbeln | |||
**Hula-Hoop-Reifen | |||
**Yo-Yos | |||
**Pedalos | |||
**Kegel zum Setzen eines Parkours | |||
**... | |||
== [[Datei:icon_sanduhr.png|20px|Icon]] Zeitaufwand == | == [[Datei:icon_sanduhr.png|20px|Icon]] Zeitaufwand == | ||
Zeile 20: | Zeile 26: | ||
== [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen == | == [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen == | ||
Das solltest du bereits können: | |||
* Ein Koordinatensystem kennen | |||
* Bedingte Anweisungen kennen | * Bedingte Anweisungen kennen | ||
* Wissen, was Variablen sind und wofür sie benötigt werden | * Wissen, was [[Variablen]] sind und wofür sie benötigt werden | ||
* Den Beschleunigungssensor anwenden können | |||
* Einen Vergleich verstehen und erstellen | |||
Du lernst ... | |||
* [[Schleifen]] zu verwenden | * [[Schleifen]] zu verwenden | ||
* [[Bedingungen]] zu verwenden | * [[Bedingungen]] zu verwenden | ||
* [[Bedingungen]] ineinander zu verschachteln | |||
* ein Sprite zu erstellen und zu bewegen | |||
* ein neues Programm zu erstellen | * ein neues Programm zu erstellen | ||
Zeile 37: | Zeile 44: | ||
* Informatik | * Informatik | ||
* Bewegung und Sport | |||
== [[Datei:Icon_hilfe.png|20px|Icon]] Tipps und Hilfestellungen == | == [[Datei:Icon_hilfe.png|20px|Icon]] Tipps und Hilfestellungen == | ||
Zeile 42: | Zeile 50: | ||
==== Ziel ==== | ==== Ziel ==== | ||
* Der Cupcake soll | * Der Cupcake soll als "sprite" (eine leuchtende LED am Display) am micro:bit beim Starten in der Mitte des Displays angezeigt werden. | ||
* Das Sprite soll sich nach oben, unten, links und rechts am | * Das Sprite soll sich nach oben, unten, links und rechts am Display bewegen, wenn der micro:bit in diese Richtung geneigt wird. Wenn du also den micro:bit nach vorne neigst, gleitet das sprite am Display nach vorne. Der Beschleunigungssensor hilft dabei. | ||
* Das Spiel dauert | * Das Spiel dauert so lange wie der Cupcake (sprite) am Display leuchtet. Fällt er von der Platte, wird "Game Over" am micro:bit ausgegeben. | ||
==== Blöcke ==== | ==== Blöcke ==== | ||
* Notwendige Variablen | * Notwendige Variablen | ||
**Die Variable "cupcake" stellt mittels eines "sprite" (Computergrafik, eine leuchtende LED am | **Die Variable "cupcake" stellt mittels eines "sprite" (Computergrafik, eine leuchtende LED am micro:bit) den Cupcake dar.<spoiler text="Block"> | ||
<pre id="pre01"> | <pre id="pre01"> | ||
let cupcake = game.createSprite(2, 2) | let cupcake = game.createSprite(2, 2) | ||
Zeile 64: | Zeile 72: | ||
</pre> | </pre> | ||
</spoiler> | </spoiler> | ||
*Mit der "while do"- Schleife wiederholst du eine Bedingung, solange diese eintritt. Wenn dir das noch nicht klar ist, hilft dir diese [https://microbit.eeducation.at/wiki/Schleifen Seite] weiter. Mit dieser "while do"-Schleife wird das Programm | *Mit der "while do"- Schleife wiederholst du eine Bedingung, solange diese eintritt. Wenn dir das noch nicht klar ist, hilft dir diese [https://microbit.eeducation.at/wiki/Schleifen Seite] weiter. Mit dieser "while do"-Schleife wird das Programm so lange ausgeführt, so lange die Variable "cupcakeOnPlate" wahr ist. Fällt der Cupcake vom Teller, wird diese Variable auf falsch gesetzt und der Programmcode wird abgebrochen. <spoiler text="Block"> | ||
<pre id="pre01"> | |||
let cupcakeOnPlate = true | |||
while (cupcakeOnPlate == true) { | while (cupcakeOnPlate == true) { | ||
} | |||
</pre> | |||
</spoiler> | |||
*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.<spoiler text="Block"> | |||
<pre id="pre01"> | |||
let cupcakeOnPlate = false | |||
let cupcake: game.LedSprite = null | |||
if (cupcake.get(LedSpriteProperty.X) == 4) { | |||
cupcakeOnPlate = false | |||
} else { | |||
cupcake.change(LedSpriteProperty.X, 1) | |||
basic.pause(200) | |||
} | |||
</pre> | |||
</spoiler> | |||
*Der zuletzt angezeigte Block soll ausgeführt werden, wenn der micro:bit nach rechts geneigt wird. Mithilfe des Beschleunigungssensors kannst du das erkennen. Ist der gemessene x-Wert für die Neigung nach rechts dieses Sensors größer als die Variable "tolerance", soll der obere Block ausgeführt werden. Du brauchst also wieder eine bedingte Anweisung.<spoiler text="Block"> | |||
<pre id="pre01"> | |||
let tolerance = 0 | |||
if (input.acceleration(Dimension.X) > tolerance) { | |||
} | } | ||
</pre> | |||
</spoiler> | </spoiler> | ||
===[[ | ===[[The_Queens_Cupcake_Lösung|Schritt für Schritt zur Lösung]]=== | ||
:Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der [https://microbit.eeducation.at/wiki/The_Queens_Cupcake_L%C3%B6sung Lösungsseite zu diesem Beispiel] | :Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der [https://microbit.eeducation.at/wiki/The_Queens_Cupcake_L%C3%B6sung Lösungsseite zu diesem Beispiel] | ||
Zeile 77: | Zeile 108: | ||
* Stelle dein Ergebnis vor! Was kann dein Produkt? | * Stelle dein Ergebnis vor! Was kann dein Produkt? | ||
* Was hat dir bei der Entwicklung deines Produkts gefallen? | * Was hat dir bei der Entwicklung deines Produkts gefallen? | ||
* Welche Schwierigkeiten hattest? Wie konntest du diese lösen? | * Welche Schwierigkeiten hattest du? Wie konntest du diese lösen? | ||
* Erläutere, wie du dein Produkt programmiert hast! | * Erläutere, wie du dein Produkt programmiert hast! | ||
* Was war bei dieser Aufgabe interessant für dich? | * Was war bei dieser Aufgabe interessant für dich? | ||
Zeile 83: | Zeile 114: | ||
===Projektspezifisch=== | ===Projektspezifisch=== | ||
* Kannst du | * Kannst du erklären, warum die Variable "tolerance" benötigt wird? Warum brauchen wir sie? | ||
* Welche Auswirkungen hätte es auf das Spiel, wenn die Variable "tolerance" den Wert 500 statt 200 hätte? Wäre das Spiel einfacher oder schwieriger? | * Welche Auswirkungen hätte es auf das Spiel, wenn die Variable "tolerance" den Wert 500 statt 200 hätte? Wäre das Spiel einfacher oder schwieriger? | ||
==[[Datei:icon_plus.png|20px|Icon]] Weiterentwicklung == | ==[[Datei:icon_plus.png|20px|Icon]] Weiterentwicklung == | ||
* | * Der oder die Spieler*in muss eine festgelegte Route mit dem "Cupcake" gehen. Es soll dabei erfasst werden, wie lange er oder sie für das Servieren benötigt. Programmiere den micro:bit so, dass direkt nach der "3-2-1 Go"-Meldung die Zeitmessung startet. Drückt man den Knopf A soll die Zeitmessung gestoppt und der gemessene Wert angezeigt werden. | ||
== Erweiterungsaufgabe == | == Erweiterungsaufgabe == | ||
* Der Code soll so angepasst werden, dass sich automatisch der Schwierigkeitsgrad ändert, wenn ein Spieler oder eine Spielerin beispielsweise 10 Sekunden lang gespielt hat, ohne den Cupcake fallen zu lassen (z.B. Toleranzänderung von 200 auf 100). | |||
* Der Code soll so angepasst werden, dass sich automatisch der Schwierigkeitsgrad ändert, wenn ein Spieler oder eine Spielerin beispielsweise 10 Sekunden lang gespielt hat, ohne den Cupcake fallen zu lassen ( | |||
<htmlet>makecode_embed</htmlet> |
Aktuelle Version vom 17. Mai 2022, 07:59 Uhr
Geschichte
Aufgabenstellung
Pass auf, dass der Cupcake nicht vom silbernen Tablett rutscht, wenn er serviert wird! In diesem Spiel wird der Cupcake durch ein leuchtendes LED am BBC micro:bit simuliert. Das silberne Tablett wird durch den 5x5 LED-Raster des BBC micro:bit dargestellt. Der Spieler oder die Spielerin tragen den BBC micro:bit flach auf dem Handrücken im Raum herum und stellen sicher, dass sich der BBC micro:bit so wenig wie möglich bewegt. Mithilfe des Beschleunigungssensors stellt unser Programm fest, ob sich der BBC micro:bit neigt (vorwärts, rückwärts, links oder rechts). Ist das der Fall, bewegt sich der Cupcake (leuchtendes LED) auf dem silbernen Tablett (5x5 LED-Raster) in die jeweilige Richtung. Das Spiel endet, wenn sich das leuchtende LED im äußeren Rand des LED-Rasters befindet und der BBC micro:bit weiter geneigt wird. Ist das zu leicht? Dann versuche beim Servieren des Cupcakes zusätzlich ein Sportgerät (Pedalos, Hula-Hoop-Reifen, Basketball) zu verwenden.
Materialien
- Ein BBC micro:bit
- Sportgeräte:
- Bälle zum Prellen oder Tribbeln
- Hula-Hoop-Reifen
- Yo-Yos
- Pedalos
- Kegel zum Setzen eines Parkours
- ...
Zeitaufwand
- 1-2 Unterrichtseinheit(en)
Schwierigkeitsgrad
Kompetenzen
Das solltest du bereits können:
- Ein Koordinatensystem kennen
- Bedingte Anweisungen kennen
- Wissen, was Variablen sind und wofür sie benötigt werden
- Den Beschleunigungssensor anwenden können
- Einen Vergleich verstehen und erstellen
Du lernst ...
- Schleifen zu verwenden
- Bedingungen zu verwenden
- Bedingungen ineinander zu verschachteln
- ein Sprite zu erstellen und zu bewegen
- ein neues Programm zu erstellen
Unterrichtsfächer
- Informatik
- Bewegung und Sport
Tipps und Hilfestellungen
Erforderliche Programmierblöcke
Ziel
- Der Cupcake soll als "sprite" (eine leuchtende LED am Display) am micro:bit beim Starten in der Mitte des Displays angezeigt werden.
- Das Sprite soll sich nach oben, unten, links und rechts am Display bewegen, wenn der micro:bit in diese Richtung geneigt wird. Wenn du also den micro:bit nach vorne neigst, gleitet das sprite am Display nach vorne. Der Beschleunigungssensor hilft dabei.
- Das Spiel dauert so lange wie der Cupcake (sprite) am Display leuchtet. Fällt er von der Platte, wird "Game Over" am micro:bit ausgegeben.
Blöcke
- Notwendige Variablen
- Die Variable "cupcake" stellt mittels eines "sprite" (Computergrafik, eine leuchtende LED am micro:bit) den Cupcake dar.
- Die Variable "cupcake" stellt mittels eines "sprite" (Computergrafik, eine leuchtende LED am micro:bit) den Cupcake dar.
let cupcake = game.createSprite(2, 2)
- Die Variable "cupcakeOnPlate" brauchst du, um überprüfen zu können, ob der Cupcake noch am Teller ist.
- Die Variable "cupcakeOnPlate" brauchst du, um überprüfen zu können, ob der Cupcake noch am Teller ist.
let cupcakeOnPlate = true
- Mit der Variable "tolerance" kannst du den Schwierigkeitsgrad des Spieles einstellen. Setze den Wert für den Anfang auf 200.
- Mit der Variable "tolerance" kannst du den Schwierigkeitsgrad des Spieles einstellen. Setze den Wert für den Anfang auf 200.
let tolerance = 200
- Mit der "while do"- Schleife wiederholst du eine Bedingung, solange diese eintritt. Wenn dir das noch nicht klar ist, hilft dir diese Seite weiter. Mit dieser "while do"-Schleife wird das Programm so lange ausgeführt, so lange die Variable "cupcakeOnPlate" wahr ist. Fällt der Cupcake vom Teller, wird diese Variable auf falsch gesetzt und der Programmcode wird abgebrochen.
let cupcakeOnPlate = true while (cupcakeOnPlate == true) { }
- 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.
let cupcakeOnPlate = false let cupcake: game.LedSprite = null if (cupcake.get(LedSpriteProperty.X) == 4) { cupcakeOnPlate = false } else { cupcake.change(LedSpriteProperty.X, 1) basic.pause(200) }
- Der zuletzt angezeigte Block soll ausgeführt werden, wenn der micro:bit nach rechts geneigt wird. Mithilfe des Beschleunigungssensors kannst du das erkennen. Ist der gemessene x-Wert für die Neigung nach rechts dieses Sensors größer als die Variable "tolerance", soll der obere Block ausgeführt werden. Du brauchst also wieder eine bedingte Anweisung.
let tolerance = 0 if (input.acceleration(Dimension.X) > tolerance) { }
Schritt für Schritt zur Lösung
- Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der Lösungsseite zu diesem Beispiel
Präsentation und Reflexion
Allgemein
- Stelle dein Ergebnis vor! Was kann dein Produkt?
- Was hat dir bei der Entwicklung deines Produkts gefallen?
- Welche Schwierigkeiten hattest du? Wie konntest du diese lösen?
- Erläutere, wie du dein Produkt programmiert hast!
- Was war bei dieser Aufgabe interessant für dich?
Projektspezifisch
- Kannst du erklären, warum die Variable "tolerance" benötigt wird? Warum brauchen wir sie?
- Welche Auswirkungen hätte es auf das Spiel, wenn die Variable "tolerance" den Wert 500 statt 200 hätte? Wäre das Spiel einfacher oder schwieriger?
Weiterentwicklung
- Der oder die Spieler*in muss eine festgelegte Route mit dem "Cupcake" gehen. Es soll dabei erfasst werden, wie lange er oder sie für das Servieren benötigt. Programmiere den micro:bit so, dass direkt nach der "3-2-1 Go"-Meldung die Zeitmessung startet. Drückt man den Knopf A soll die Zeitmessung gestoppt und der gemessene Wert angezeigt werden.
Erweiterungsaufgabe
- Der Code soll so angepasst werden, dass sich automatisch der Schwierigkeitsgrad ändert, wenn ein Spieler oder eine Spielerin beispielsweise 10 Sekunden lang gespielt hat, ohne den Cupcake fallen zu lassen (z.B. Toleranzänderung von 200 auf 100).