Lernpfad:Einführung in den micro:bit/9: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Ngb (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Ngb (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 43: | Zeile 43: | ||
sleep(200) | sleep(200) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Aufgabe:Start|Icon=MuEditor.png}} | |||
Erweitere das Programm nun zu einem kleinen Spiel. Das Ziel soll es sein, alle LEDs des Displays einzuschalten. Nimm dazu folgende Änderungen vor: | |||
# Anstatt die alte LED auszuschalten, setze ihren Wert auf <code>3</code>. | |||
# Implementiere eine Methode <code>check_display()</code> die prüft, ob alle LEDs an sind und in diesem Fall <code>True</code> liefert, ansonten <code>False</code>. | |||
# Nutze <code>check_display()</code>, um vor jedem <code>sleep()</code> das Display zu prüfen. | |||
# Falls das Display komplett an ist, schalte alle LEDs auf 6 und breche die Endlosschleife ab. | |||
{{Aufgabe:End}} |
Version vom 7. Dezember 2023, 09:28 Uhr
Arbeitsauftrag
Übertrage das Programm unten in den Thonny und überspiele es auf den micro:bit.
Teste das Programm und erkläre seine Funktion. Notiere dir dazu Stichpunkte im Heft und ergänze neue Befehle in deiner Befehlsübersicht.
Tipp: Kippe den micro:bit doch mal leicht in eine Richtung.
from microbit import *
## Hilfsfunktion
def check_coords(x, y):
if x > 4:
x = 4
elif x < 0:
x = 0
if y > 4:
y = 4
elif y < 0:
y = 0
return (x, y)
## Initialisierung
sens = 350 # Mess-Sensitivität des Akzelerometer
x = 0
y = 0
display.set_pixel(x, y, 6)
## Endlosschleife
while True:
x1 = x + int(accelerometer.get_x()/sens)
y1 = y + int(accelerometer.get_y()/sens)
x1, y1 = check_coords(x1, y1)
if x1 != x or y1 != y:
display.set_pixel(x, y, 0)
display.set_pixel(x1, y1, 6)
x, y = x1, y1
sleep(200)
Arbeitsauftrag
Erweitere das Programm nun zu einem kleinen Spiel. Das Ziel soll es sein, alle LEDs des Displays einzuschalten. Nimm dazu folgende Änderungen vor:
- Anstatt die alte LED auszuschalten, setze ihren Wert auf
3
. - Implementiere eine Methode
check_display()
die prüft, ob alle LEDs an sind und in diesem FallTrue
liefert, ansontenFalse
. - Nutze
check_display()
, um vor jedemsleep()
das Display zu prüfen. - Falls das Display komplett an ist, schalte alle LEDs auf 6 und breche die Endlosschleife ab.