Lernpfad:Das micro:glow/8
Eine zufällige Endlosschleife
Dein micro:glow reagiert nun auf die Signale anderer "Glühwürmchen" und kann selber ein Signal versenden. Aber wenn die anderen micro:glows auf eines deiner Signale reagieren, dann leuchten sie ja selber auf, was im Gegenzug dein mico:glow zu einer Reaktion veranlassen sollte. Und diese Reaktion löst wieder ein Signal bei den anderen aus ... und so weiter.
Im Prinzip würde man eine Endlosschleife von Glüh-Signalen auslösen, sobald nur ein micro:glow ein erstes Mal aufleuchtet.
Damit das "Leuchtkonzert" auch irgendwann zu Ende ist, soll jedes micro:glow nur bei 10% der empfangenen Signale selber wieder ein 'flash'
Signal versenden.
Ergänze nach dem Glühen eine Verzweigung, die mit einer Wahrscheinlichkeit von 10% (if randint(0,9) == 1:
) nach einer Wartezeit von 500 Millisekunden (sleep(500)
) das Wort 'flash'
sendet (radio.send('flash')
).
Die neuen Zeilen sind farbig hervorgehoben.
from microbit import *
from random import randint
import radio
# Funksender einschalten
radio.on()
# Erstellen der "glow" Animation
flash = [Image().invert()*(i/9) for i in range(9, -1, -1)]
while True:
# Knopf A sendet das 'flash' Signal
if button_a.was_pressed():
radio.send('flash')
# Empfangen der Signale anderer micro:bits
empfang = radio.receive()
if empfang == 'flash':
# Kurz (zufällig) warten
sleep(randint(50, 350))
# Animation abspielen
display.show(flash, delay=100, wait=False)
# In 10% der Fälle wieder ein 'flash' senden
if randint(0,9) == 1:
sleep(500)
radio.send('flash');