Exercices#
from microbit import *
display.clear()
Exercice 7#
Dans cet exercice, vous allez déplacer un pixel sur l'écran, d'abord sur la première ligne et ensuite sur tout l'écran.
Dans le programme ci-dessous le premier pixel de la première ligne est allumé.
En utilisant une boucle
for, déplacez le pixel sur la première ligne.Astuce
Dans chaque passage dans la boucle, il faudra effacer tout l'écran en utilisant la fonction
display.clear(), avant d'afficher le pixel au nouvel emplacement[Optionnel] En utilisant une deuxième boucle for, faites parcourir au pixel tout l'écran.
Astuce
Une des boucles va modifier la valeur de
xet l'autre la valeur dey.[Optionnel] Modifiez la vitesse de déplacement du pixel.
from microbit import *
# coordonnées du pixel
x = 0
y = 0
# affichage du pixel
display.set_pixel(x, y, 9)
Solution
from microbit import *
# coordonnées du pixel
x = 0
y = 0
# affichage du pixel
for _ in range(5):
for _ in range(5):
display.set_pixel(x, y, 9)
x += 1
sleep(100)
display.clear()
y += 1
x = 0
Exercice 8#
Écrivez un programme qui affiche l'image de Pacman
Image.PACMANlorsque le bouton A est appuyé et affiche l'image d'un fantômeImage.GHOSTlorsque c'est le bouton B.Ajoutez que l'écran ne doit rien afficher quand aucun bouton n'est pressé.
Astuce
La fonction
display.clear()efface l'écran, c'est-à-dire éteint toutes les LED.
from microbit import *
# Écrivez le programme ici
Solution
from microbit import *
while True:
if button_a.was_pressed():
display.show(Image.PACMAN)
elif button_b.was_pressed():
display.show(Image.GHOST)
else:
display.clear()
sleep(500)
Exercice 9#
En utilisant une boucle
while, écrivez un programme qui affiche un décompte: 9, 8, ... et lorsque le compteur est arrivé à 0, affichez "BOOM" suivi de l'image d'un crâne. (Image.SKULL).Ajoutez un son après l'affichage du crâne.
Astuce
Le micro:bit permet d'ajouter des sons. Voir le site officiel microbit.org pour les détails.
from microbit import *
# Écrivez le programme ici
Solution
from microbit import *
import music
compteur = 9
while compteur > 0:
display.show(compteur)
compteur -= 1
sleep(200)
display.scroll("BOOM")
display.show(Image.SKULL)
music.play(music.POWER_DOWN)
Exercice 10#
Écrivez un programme qui simule un lancer de dé, c'est-à-dire que lorsque vous secouez le micro:bit, un nombre aléatoire entre 1 et 6 doit s'afficher.
Astuce
La fonction
randint(a, b)du modulerandomrenvoie un nombre entier "aléatoire" entre a et b, tous les deux compris (\(a \leq randint(a,b) \leq b\)).[Optionnel] Modifiez le programme de la partie a) pour qu'il affiche la valeur obtenue comme sur un dé: ⚀ ⚁ ⚂ ⚃ ⚄ et ⚅.
Astuce
Le micro:bit contient un accéléromètre qui permet de connaître sa position,
ainsi que ses mouvements. La fonction accelerometer.was_gesture('shake')
renvoie True si le micro:bit a été secoué.
from microbit import *
# Écrivez le programme ici
Solution
from microbit import * from random import randint while True: if accelerometer.was_gesture('shake'): display.show(randint(1, 6))
from microbit import * from random import randint while True: if accelerometer.was_gesture('shake'): n = randint(1, 6) if n == 1: display.show(Image("00000:00000:00900:00000:00000")) elif n == 2: display.show(Image("90000:00000:00000:00000:00009")) elif n == 3: display.show(Image("90000:00000:00900:00000:00009")) elif n == 4: display.show(Image("90009:00000:00000:00000:90009")) elif n == 5: display.show(Image("90009:00000:00900:00000:90009")) elif n == 6: display.show(Image("90009:00000:90009:00000:90009"))
Exercice 11#
Écrivez un programme qui:
allume le pixel du centre de l'écran,
si l'utilisateur appuie sur le bouton A, le pixel se déplace à gauche,
si l'utilisateur appuie sur le bouton B, le pixel se déplace à droite,
si le pixel est au bord de l'écran, il ne se passe rien.
from microbit import *
# Écrivez le programme ici
Solution
from microbit import *
x = 2
y = 2
display.set_pixel(x, y, 9)
while True:
if button_a.was_pressed():
if x != 0:
x -= 1
elif button_b.was_pressed():
if x != 4:
x += 1
display.clear()
display.set_pixel(x, y, 9)
sleep(200)
Exercice 12#
Écrivez un programme qui mesure votre temps de réaction en secondes.
Des images d'animaux défilent aléatoirement sur l'écran. (
Image.RABBIT,Image.COW,Image.TORTOISE,Image.DUCK,Image.SNAKE,Image.BUTTERFLY,Image.GIRAFFE)Lorsqu'une flèche vers la droite
Image.ARROW_Eapparaît, il faut appuyer le plus rapidement possible sur le bouton B. Le temps de réaction sera calculé et affiché.Ajoutez une difficulté supplémentaire:
Lorsqu'une flèche vers la gaucheImage.ARROW_Wapparaît, il faut appuyer sur le bouton A.
Astuce
La fonction running_time() renvoie le nombre de millisecondes depuis le
démarrage du micro:bit.
from microbit import *
# Écrivez le programme ici
Solution
from microbit import *
from random import randint
while True:
nombre = randint(1, 32)
if nombre <= 5:
display.show(Image.RABBIT)
elif nombre <= 10:
display.show(Image.COW)
elif nombre <= 15:
display.show(Image.TORTOISE)
elif nombre <= 20:
display.show(Image.DUCK)
elif nombre <= 25:
display.show(Image.BUTTERFLY)
elif nombre <= 30:
display.show(Image.SNAKE)
elif nombre == 31:
display.show(Image.ARROW_E)
debut = running_time()
while True:
if button_b.was_pressed():
fin = running_time()
break
temps_ecoule = (fin - debut)/1000
display.scroll(temps_ecoule)
sleep(2000)
elif nombre == 32:
display.show(Image.ARROW_W)
debut = running_time()
while True:
if button_a.was_pressed():
fin = running_time()
break
temps_ecoule = (fin - debut)/1000
display.scroll(temps_ecoule)
sleep(2000)
sleep(200)