Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
talit:microbit [2024-04-21 19:23] – [Auftrag 3] scatalit:microbit [2024-04-29 11:36] (aktuell) – [Lösungen Aufgaben] sca
Zeile 35: Zeile 35:
  
  
-===== - Micro:bit kennenlernen =====+===== - Aufgaben =====
  
 Die hilfreichste Quelle ist das Wiki vom Grundlagenfach 2M: https://sca.ksr.ch/doku.php?id=gf_informatik:microbit_programmieren_grundlagen Die hilfreichste Quelle ist das Wiki vom Grundlagenfach 2M: https://sca.ksr.ch/doku.php?id=gf_informatik:microbit_programmieren_grundlagen
  
-==== Auftrag 1 ====+==== Aufgabe 1: LED-Matrix ==== 
 + 
 +Erstelle GitHub-Repo **microbit**, lege darin die Codes ab.
  
    1. Das LED im Zentrum der $5 \times 5-$LED-Matrix soll leuchten. Drückt man den linken/rechten Knopf, soll sich das Licht nach links/rechts bewegen. Es soll immer genau eine LED leuchten.<WRAP>    1. Das LED im Zentrum der $5 \times 5-$LED-Matrix soll leuchten. Drückt man den linken/rechten Knopf, soll sich das Licht nach links/rechts bewegen. Es soll immer genau eine LED leuchten.<WRAP>
Zeile 49: Zeile 51:
    1. Wahrscheinlich gibt es jetzt eine Fehlermeldung, wenn man über den Rand hinauslaufen will. Vermeide dies! Erreicht man den linken/rechten Rand, geht es nicht weiter in die linke/rechte Richtung.    1. Wahrscheinlich gibt es jetzt eine Fehlermeldung, wenn man über den Rand hinauslaufen will. Vermeide dies! Erreicht man den linken/rechten Rand, geht es nicht weiter in die linke/rechte Richtung.
  
-==== Auftrag 2 ====+==== Aufgabe 2: Würfel ====
  
 Implementiere einen Würfel. Drückt man eine der beiden Tasten, soll eine Zufallszahl $1$ bis $6$ generiert (-> random-Modul) und das entsprechende Würfelsymbol angezeigt werden. Zeichne die Bilder mit `display.set_pixel(...)` selbst. Implementiere einen Würfel. Drückt man eine der beiden Tasten, soll eine Zufallszahl $1$ bis $6$ generiert (-> random-Modul) und das entsprechende Würfelsymbol angezeigt werden. Zeichne die Bilder mit `display.set_pixel(...)` selbst.
  
-==== Auftrag 3: Misc ====+==== Aufgabe 3: Misc ====
  
    1. Fotoschau: Im micro:bit sind viele verschiedene Bilder vordefiniert. Speichere einige davon in einer Liste. Mit den beiden Knöpfen soll man die Bilder durchgehen können.    1. Fotoschau: Im micro:bit sind viele verschiedene Bilder vordefiniert. Speichere einige davon in einer Liste. Mit den beiden Knöpfen soll man die Bilder durchgehen können.
Zeile 61: Zeile 63:
 Optional: Optional:
  
-   1. Über BLE können mehrere micro:bit miteinander kommunizieren. Verbinde zwei micro:bit miteinander und modifiziere den Würfel-Code wie folgt: Auf beiden micro:bits wird immer der gleiche Würfel angezeigt. Drückt man auf einem der beiden micro:bits einen Knopf, wird eine neue Zahl gewürfelt und auf *beiden* angezeigt.+   1. Benötigt zwei micro:bits: Über BLE können mehrere micro:bit miteinander kommunizieren. Verbinde zwei micro:bit miteinander und modifiziere den Würfel-Code wie folgt: Auf beiden micro:bits wird immer der gleiche Würfel angezeigt. Drückt man auf einem der beiden micro:bits einen Knopf, wird eine neue Zahl gewürfelt und auf *beiden* angezeigt. 
  
  
-==== Lösungen ====+==== Lösungen Aufgaben ==== 
 + 
 + 
 +++++Lösungen|
  
 <nodisp 2> <nodisp 2>
Zeile 93: Zeile 98:
 def dice(n): def dice(n):
     display.clear()     display.clear()
-    if n % 2 == 1:+    if n == 1:
         display.set_pixel(2,2,9)         display.set_pixel(2,2,9)
-    if >= 2:+    elif == 2
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +    elif n == 3: 
 +        display.set_pixel(2,2,9) 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +    elif n == 4: 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +        display.set_pixel(0,0,9) 
 +        display.set_pixel(4,4,9) 
 +    elif n == 5: 
 +        display.set_pixel(2,2,9) 
 +        display.set_pixel(0,4,9) 
 +        display.set_pixel(4,0,9) 
 +        display.set_pixel(0,0,9) 
 +        display.set_pixel(4,4,9) 
 +    elif n == 6:
         display.set_pixel(0,4,9)         display.set_pixel(0,4,9)
         display.set_pixel(4,0,9)         display.set_pixel(4,0,9)
-    if n >= 4: 
         display.set_pixel(0,0,9)         display.set_pixel(0,0,9)
         display.set_pixel(4,4,9)         display.set_pixel(4,4,9)
-    if n == 6: 
         display.set_pixel(0,2,9)         display.set_pixel(0,2,9)
         display.set_pixel(4,2,9)         display.set_pixel(4,2,9)
Zeile 109: Zeile 130:
         dice(random.randint(1,6))         dice(random.randint(1,6))
     sleep(100)     sleep(100)
 +</code>
 +
 +Alternative Ideen für dice-Funktion:
 +
 +<code python>
 +
 +### Variante 1
 +
 +def dice(n):
 +    display.clear()
 +    if n == 1:
 +        display.set_pixel(2,2,9)
 +    elif n == 2:
 +        display.set_pixel(0,4,9)
 +        display.set_pixel(4,0,9)
 +    elif n == 3:
 +        display.set_pixel(2,2,9)
 +        display.set_pixel(0,4,9)
 +        display.set_pixel(4,0,9)
 +    elif n == 4:
 +        display.set_pixel(0,4,9)
 +        display.set_pixel(4,0,9)
 +        display.set_pixel(0,0,9)
 +        display.set_pixel(4,4,9)
 +    elif n == 5:
 +        display.set_pixel(2,2,9)
 +        display.set_pixel(0,4,9)
 +        display.set_pixel(4,0,9)
 +        display.set_pixel(0,0,9)
 +        display.set_pixel(4,4,9)
 +    elif n == 6:
 +        display.set_pixel(0,4,9)
 +        display.set_pixel(4,0,9)
 +        display.set_pixel(0,0,9)
 +        display.set_pixel(4,4,9)
 +        display.set_pixel(0,2,9)
 +        display.set_pixel(4,2,9)
 +
 +### Variante 2
 +def dice(n):
 +    dots = [
 +        [[2,2]],
 +        [[0,4],[4,0]],
 +        [[2,2],[0,4],[4,0]],
 +        [[0,4],[4,0],[0,0],[4,4]],
 +        [[2,2],[0,4],[4,0],[0,0],[4,4]],
 +        [[0,4],[4,0],[0,0],[4,4],[0,2],[4,2]],
 +    ]
 +    display.clear()
 +    for pixel in dots[n-1]:
 +        display.set_pixel(pixel[0],pixel[1],9)
 +
 +### Variante 3
 +
 +def dice(n):
 +    display.clear()
 +    if n % 2 == 1:
 +        display.set_pixel(2,2,9)
 +    if n >= 2:
 +        display.set_pixel(0,4,9)
 +        display.set_pixel(4,0,9)
 +    if n >= 4:
 +        display.set_pixel(0,0,9)
 +        display.set_pixel(4,4,9)
 +    if n == 6:
 +        display.set_pixel(0,2,9)
 +        display.set_pixel(4,2,9)
 </code> </code>
  
 <code python auftrag_3.py> <code python auftrag_3.py>
-asd 
 </code> </code>
 +
  
 </nodisp> </nodisp>
  
 +++++
  
  • talit/microbit.1713727402.txt.gz
  • Zuletzt geändert: 2024-04-21 19:23
  • von sca