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

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
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

MuEditor.png
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)
MuEditor.png
Arbeitsauftrag

Erweitere das Programm nun zu einem kleinen Spiel. Das Ziel soll es sein, alle LEDs des Displays einzuschalten. Nimm dazu folgende Änderungen vor:

  1. Anstatt die alte LED auszuschalten, setze ihren Wert auf 3.
  2. Implementiere eine Methode check_display() die prüft, ob alle LEDs an sind und in diesem Fall True liefert, ansonten False.
  3. Nutze check_display(), um vor jedem sleep() das Display zu prüfen.
  4. Falls das Display komplett an ist, schalte alle LEDs auf 6 und breche die Endlosschleife ab.