Une variante avec les boucles for

Question

Comment modifier le programme utilisé précédemment pour allumer progressivement l'ensemble des DEL de la carte Micro:bit pour obtenir le résultat de la vidéo jointe ?

1
from microbit import *
2
display.clear()  # On éteint les DEL
3
while True:  # Les instructions de la boucle sont répétées indéfiniment
4
    for ligne in range(5):  # ligne varie entre 0 et 4
5
        for colonne in range(5):  # colonne varie entre 0 et 4
6
            display.set_pixel(colonne,ligne,9)  # On allume la DEL de coordonnées (colonne,ligne)
7
            sleep(50)  # on attend 50 ms avant la prochaine itération
8
    for ligne in range(5):
9
        for colonne in range(5):
10
            display.set_pixel(colonne,ligne,0)  # On éteint la DEL de coordonnées (colonne,ligne)
11
            sleep(50)

Indice

Les deux boucles imbriquées permettant l'extinction des DEL doivent permettre de parcourir les DEL depuis la ligne du bas, vers la ligne du haut.

Solution

Méthode
1
from microbit import *
2
display.clear()
3
while True:
4
    for ligne in range(5):
5
        for colonne in range(5):
6
            display.set_pixel(colonne,ligne,9)
7
            sleep(50)
8
    for ligne in range(4, -1, -1):  # On parcourt les lignes depuis la n°4 vers la n°0 de 1 en 1 à l'envers
9
        for colonne in range(4, -1, -1):  # Idem pour les colonnes
10
            display.set_pixel(colonne,ligne,0)  # On éteint la DEL concernée
11
            sleep(50)

range est utilisé ici avec une valeur de départ, une valeur finale et un pas.

La valeur finale (-1) n'est pas atteinte, on sort de la boucle si ligne ou colonne vaut -1.