Coder¶
Le code nécessaire à la réalisation du projet Températures a été écrit en micropython. Vous trouverez ci-dessous :
Le code, étape par étape¶
Incluons la bibliothèque Micro:bit
from microbit import *
Créons les images qui nous servirons à animer l’écran. La luminosité d’une diode varie de
0(éteinte) à9(maximale).Lorsque la température augmente, l’affichage passe progressivement de
image1àimage 5.image1 = Image( '00000:' '00000:' '00000:' '00000:' '99999') image2 = Image( '00000:' '00000:' '00000:' '99999:' '77777') image3 = Image( '00000:' '00000:' '99999:' '77777:' '77777') image4 = Image( '00000:' '99999:' '77777:' '77777:' '77777') image5 = Image( '99999:' '77777:' '77777:' '77777:' '77777')
Il y aura deux états dans le jeu :
- La variable
victoireest vrai et l’écran affiche le code secret. - la variable
victoireest fausse et l’écran affiche l’énigme.
Au début, la variable est donc fausse.
victoire = False
- La variable
La phase de configuration est terminée. Passons maintenant à la boucle qui… tourne en boucle.
Tout ce qui suivra cette codee sera donc indenté (tabulation).
while True:
Nous envisageons trois actions possibles :
le jeu se réinitialise grâce au bouton A ;
if button_a.is_pressed(): victoire = False
b) le jeu est gagné et l’écran affiche le code final (après une petite animation);
if victoire: # petite image joyeuse display.show(Image.HAPPY) sleep(500) # code secret à afficher… display.scroll("XXXXXX")
le jeu est en cours et l’écran affiche les
image.if not victoire:
Lire la température
temp = temperature()
Plus la température augmente, plus les images affichées remplissent l’écran
if temp < 29: display.clear() elif 29 <= temp < 30: display.show(image1) elif 30 <= temp < 31: display.show(image2) elif 31 <= temp < 32: display.show(image3) elif 32 <= temp < 33: display.show(image4) elif 33 <= temp < 34: display.show(image5)
et enfin, si la température dépasse 34°C, alors là on passe en mode
victoirevrai. On ajoute une petite animation pour montrer que la victoire approche.elif 34 <= temp: victoire = True # petite animation for i in range(2): display.show(Image.SQUARE_SMALL) sleep(100) display.show(Image.SQUARE) sleep(100)
Pour finir, une pause syndicale de 500ms.
sleep(500)
Le code final¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | # -*- coding: utf-8-*-# Encoding cookie added by Mu Editor
from microbit import *
# définir mes images persos
# pour les lignes qui se colorent
image1 = Image(
'00000:'
'00000:'
'00000:'
'00000:'
'99999')
image2 = Image(
'00000:'
'00000:'
'00000:'
'99999:'
'77777')
image3 = Image(
'00000:'
'00000:'
'99999:'
'77777:'
'77777')
image4 = Image(
'00000:'
'99999:'
'77777:'
'77777:'
'77777')
image5 = Image(
'99999:'
'77777:'
'77777:'
'77777:'
'77777')
# booléen pour savoir si l'énigme est réussie
victoire = False
# à faire toujours et toujours…
while True:
# utiliser le bouton A pour réinitialiser
if button_a.is_pressed():
victoire = False
# si l'énigme est résolue
if victoire:
# petite image joyeuse
display.show(Image.HAPPY)
sleep(500)
# code secret à afficher…
display.scroll("XXXXXX")
# si l'énigme n'a pas été résolue
if not victoire:
# lire la température (en °C)
temp = temperature()
# affichage des images en fonction
# de temp
if temp < 29:
display.clear()
elif 29 <= temp < 30:
display.show(image1)
elif 30 <= temp < 31:
display.show(image2)
elif 31 <= temp < 32:
display.show(image3)
elif 32 <= temp < 33:
display.show(image4)
elif 33 <= temp < 34:
display.show(image5)
# victoire !
elif 34 <= temp:
victoire = True
# petite animation
for i in range(2):
display.show(Image.SQUARE_SMALL)
sleep(100)
display.show(Image.SQUARE)
sleep(100)
sleep(500)
|