Lernpfad:Einführung in den micro:bit/10: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{NNameAnzeigen}}{{NNavigation}}
{{NNameAnzeigen}}{{NNavigation}}


Das Spiel ''Achtung, Bombe!'' geht so:  
Das Spiel [https://www.piatnik.com/uploads/media/default/0001/01/8fb1f9b9e6fb404447ae6bc24d3c6d9f1bf53dfc.pdf ''Tick-Tack ... Bumm''] geht so:  
{{Rahmen|[[Bild:Icon Bomb.svg|64px|right]]
{{Rahmen|[[Bild:Icon Bomb.svg|64px|right]]
Beim Einschalten wird der Timer der "Bombe" auf einen zufälligen Wert gesetzt. Beim Start beginnt der Timer abzulaufen, ohne dass der Countdown zu sehen ist. Der Startspieler gibt nun die "Bombe" an den nächsten Spieler weiter. Dieser an seinen Nachfolger, und so weiter. Der Spieler, bei dem die Bombe "explodiert", hat verloren.
Die Spielenden sitzen im Kreis. Die Startspielerin hält die "Bombe" in der Hand. Sie wirft einen Würfel, der eines von drei Symbolen zeigt:
* "Tick": Die Buchstabengruppe darf ''nicht am Anfang'' des Wortes stehen.
* "Tick-Tack ... Bumm!": Die Buchstabengruppe darf ''an beliebiger Stelle'' des Wortes stehen.
* "Bumm!": Die Buchstabengruppe darf ''nicht am Ende'' des Wortes stehen.


Jeder Spieler kann so lange mit dem Weitergeben warten, wie er möchte, aber dabei steigt das Risiko, dass die Bombe bei ihm explodiert.
Die Startspielerin startet die "Bombe" und zieht eine Karte, auf der sich eine Buchstabengruppe befindet (beispielsweise "UNG" oder "FRE").
 
Der oder die Spielende mit der "Bombe" muss nun so schnell es geht ein Wort sagen, das bisher nicht genannt wurde und die Buchstabengruppe nach der vom Würfel bestimmten Regel enthält. Dann wird die "Bombe" im Uhrzeigersinn an die nächste Spieler:in gegeben. Wenn die "Bombe" explodiert, muss die aktuelle Spielende die Karte als Minuspunkt nehmen. Anschließend beginnt sie mit einer neuen Runde.
}}
}}
{{Hinweis|
[https://www.piatnik.com/uploads/media/default/0001/01/8fb1f9b9e6fb404447ae6bc24d3c6d9f1bf53dfc.pdf Eine vollständige Anleitung] findest Du auf der Seite des Spieleverlags Piatnik.}}


{{Aufgabe:Start|Icon=MuEditor.png}}
{{Aufgabe:Start|Icon=MuEditor.png}}
Programmiere eine Version von '''Achtung, Bombe!''' auf dem {{micro:bit}}.
Programmiere eine Version von '''Tick-Tack ... Bumm!''' auf dem {{micro:bit}}.
 
Dazu soll zunächst eine vereinfachte Variante implementiert werden:
* Die Buchstabengruppen bestehen zunächst nur aus einem Buchstaben.
* Es gibt noch keinen Würfel. Die Buchstabengruppe muss stattdessen immer am Anfang des Wortes stehen.
* Der {{micro:bit}} ist die Karte und die "Bombe" zugleich.
* Wenn das Spiel startet zeigt der {{micro:bit}} einen zufälligen Buchstaben an und startet einen (unsichtbaren) zufälligen Timer.
{{Aufgabe:End}}
{{Aufgabe:End}}
Überlege dir, wie du das Spiel mit dem {{micro:bit}} umsetzen möchtest. Das Spiel sollte starten, wenn ein Knopf betätigt wird. Die "Explosion" sollte passend dargestellt werden. Denke auch an die Beispielprogramme und welche Befehle du für dein Spiel verwenden kannst.
Überlege Dir, wie Du das Spiel mit dem {{micro:bit}} umsetzen möchtest. Das Spiel sollte starten, wenn ein Knopf betätigt wird. Die "Explosion" sollte passend dargestellt werden. Denke auch an die Beispielprogramme und welche Befehle Du für Dein Spiel verwenden kannst. Nutze Deine Tabelle mit {{micro:bit}}-Befehlen.
 
== Hilfreiche Befehle ==
{|{{prettytable}}
| <code>display.show("A")</code> || Zeigt den Buchstaben <code>A</code> auf dem Display an.
|-
| <code>display.clear()</code> || Schaltet alle LEDs aus. (Setzt die Helligkeit auf <code>0</code>.)
|-
| <code>choice(["A","B","C"])</code> || Wählt zufällig ein Element aus einer Liste. (Muss vorher importiert werden: <code>from random import choice</code>.)
|-
| <code>ord("A")</code> / <code>chr(65)</code> || Gibt den ASCII-Code eines Zeichens zurück / Gibt das Zeichen zu einem ASCII-Code zurück.
 
Mithilfe dieser Funktionen lassen sich Buchstaben in Zahlen und Zahlen in Buchstaben umwandeln. Eine [https://www.asciitable.com Übersicht der ASCII-Zeichen] lässt sich im Internet finden.
|-
| <code>list(string.ascii_uppercase)</code> || Erzeugt eine Liste mit allen Großbuchstaben des Alphabets. (Muss vorher importiert werden: <code>import string</code>.)
|-
| <code>for i in range(5):</code> || Eine ''Zählschleife'', die ab dem Wert <code>0</code> die Variable <code>i<code> nacheinander auf insgesamt <code>5</code> Zahlen setzt (also <code>0, 1, 2, 3, 4</code>). In jedem Durchlauf der Schleife hat <code>i</code> also einen anderen Wert.
|}
 
{{Collapse:Start|Vorlage für Tick-Tack ... Bumm!}}
<syntaxhighlight lang="python" line="1">
from microbit import *
from random import randint, choice
 
# mit choice kann aus einer Liste ein zufälliges Element gewählt werden:
# choice(["A", "B", "C"])
 
# Countdown zufällig setzen
timer = <...>
# Buchstaben zufällig auswählen
letter = <...>
 
# Abwarten, bis Button A gedrückt wurde
while not <...>:
    sleep(10)
 
# Solange Timer noch nicht null
while <...>:
    # Warte (sleep) eine Zeit (1 Sek.?) und
    # zähle den Timer herunter
    <...>
# Timer abgelaufen, zeige "Explosion" an
<...>
</syntaxhighlight>
{{Collapse:End}}

Aktuelle Version vom 14. Dezember 2023, 09:52 Uhr

Das Spiel Tick-Tack ... Bumm geht so:

Icon Bomb.svg

Die Spielenden sitzen im Kreis. Die Startspielerin hält die "Bombe" in der Hand. Sie wirft einen Würfel, der eines von drei Symbolen zeigt:

  • "Tick": Die Buchstabengruppe darf nicht am Anfang des Wortes stehen.
  • "Tick-Tack ... Bumm!": Die Buchstabengruppe darf an beliebiger Stelle des Wortes stehen.
  • "Bumm!": Die Buchstabengruppe darf nicht am Ende des Wortes stehen.

Die Startspielerin startet die "Bombe" und zieht eine Karte, auf der sich eine Buchstabengruppe befindet (beispielsweise "UNG" oder "FRE").

Der oder die Spielende mit der "Bombe" muss nun so schnell es geht ein Wort sagen, das bisher nicht genannt wurde und die Buchstabengruppe nach der vom Würfel bestimmten Regel enthält. Dann wird die "Bombe" im Uhrzeigersinn an die nächste Spieler:in gegeben. Wenn die "Bombe" explodiert, muss die aktuelle Spielende die Karte als Minuspunkt nehmen. Anschließend beginnt sie mit einer neuen Runde.

Icon Info.png

Eine vollständige Anleitung findest Du auf der Seite des Spieleverlags Piatnik.

MuEditor.png
Arbeitsauftrag

Programmiere eine Version von Tick-Tack ... Bumm! auf dem micro:bit.

Dazu soll zunächst eine vereinfachte Variante implementiert werden:

  • Die Buchstabengruppen bestehen zunächst nur aus einem Buchstaben.
  • Es gibt noch keinen Würfel. Die Buchstabengruppe muss stattdessen immer am Anfang des Wortes stehen.
  • Der micro:bit ist die Karte und die "Bombe" zugleich.
  • Wenn das Spiel startet zeigt der micro:bit einen zufälligen Buchstaben an und startet einen (unsichtbaren) zufälligen Timer.


Überlege Dir, wie Du das Spiel mit dem micro:bit umsetzen möchtest. Das Spiel sollte starten, wenn ein Knopf betätigt wird. Die "Explosion" sollte passend dargestellt werden. Denke auch an die Beispielprogramme und welche Befehle Du für Dein Spiel verwenden kannst. Nutze Deine Tabelle mit micro:bit-Befehlen.

Hilfreiche Befehle

display.show("A") Zeigt den Buchstaben A auf dem Display an.
display.clear() Schaltet alle LEDs aus. (Setzt die Helligkeit auf 0.)
choice(["A","B","C"]) Wählt zufällig ein Element aus einer Liste. (Muss vorher importiert werden: from random import choice.)
ord("A") / chr(65) Gibt den ASCII-Code eines Zeichens zurück / Gibt das Zeichen zu einem ASCII-Code zurück.

Mithilfe dieser Funktionen lassen sich Buchstaben in Zahlen und Zahlen in Buchstaben umwandeln. Eine Übersicht der ASCII-Zeichen lässt sich im Internet finden.

list(string.ascii_uppercase) Erzeugt eine Liste mit allen Großbuchstaben des Alphabets. (Muss vorher importiert werden: import string.)
for i in range(5): Eine Zählschleife, die ab dem Wert 0 die Variable i nacheinander auf insgesamt 5 Zahlen setzt (also 0, 1, 2, 3, 4). In jedem Durchlauf der Schleife hat i also einen anderen Wert.
Vorlage für Tick-Tack ... Bumm!
from microbit import *
from random import randint, choice

# mit choice kann aus einer Liste ein zufälliges Element gewählt werden:
# choice(["A", "B", "C"])

# Countdown zufällig setzen
timer = <...>
# Buchstaben zufällig auswählen
letter = <...>

# Abwarten, bis Button A gedrückt wurde
while not <...>:
    sleep(10)

# Solange Timer noch nicht null
while <...>:
    # Warte (sleep) eine Zeit (1 Sek.?) und
    # zähle den Timer herunter
    <...>
 
# Timer abgelaufen, zeige "Explosion" an
<...>