Etape 9 - Défi programmation n°6
En îlot
Les questions ci-dessous doivent obligatoirement être réalisées sur les deux ordinateurs de l'îlot. Manipulations raisonnées sous la responsabilité de l'élève gestionnaire. Ne pas utiliser les blocs de la version V2 de la carte micro:bit |
Mode opératoire :
Niveau Expert
Niveau intermédiaire
1- Mettre au point, en utilisant les blocs donnés ci-dessous, le programme du jeu Flappy Bird (voir description ci-dessous) :
Flappy est matérialisé par une LED clignotantes qui se déplace uniquement sur la colonne 0 (déplacement vers le haut par appui sur le bouton A et déplacement vers le bas par appui sur le bouton B). L'appui simultané sur les bouton A et B démarre la partie. Les obstacles sont matérialisées par 4 leds allumées d'une colonne de la matrice (luminosité réduite à la valeur 50). Le trou est matérialisé par la cinquième led qui est éteinte et dont la position est choisie aléatoirement lors de la première apparition du mur sur la colonne 4 de la matrice. Les 4 leds allumées se déplacent de la droite vers la gauche (de la colonne 4 vers la colonne 0 - la led éteinte ne bouge pas). La vitesse de déplacement de l'obstacle est définie par une pause de 500 ms entre deux colonnes. Si l'obstacle ne touche pas Flappy au niveau de la colonne0, le score s'incrémente (+1). Si l'obstacle touche Flappy, la partie est terminée et le score est affiché. Si le score est supérieur à 10, la vitesse de déplacement de l'obstacle est accélérée (pause entre deux colonnes = 300 ms). L'obstacle est composé de 5 briques (brique0 (brique de la ligne0), brique1 (brique de la ligne1), brique2 (brique de la ligne2), brique3 (brique de la ligne3), brique4 (brique de la ligne4)). Flappy et chaque brique des obstacles sont programmés avec des lutins (sprites - catégorie |
Coordonnées des LEDs de la matrice |
![]() |
3- Insérer une photo du programme bloc dans votre document élève "Activité 61 - 4emeYilotZ" (impression écran > ctrl+V > recadrer).
4- Télécharger le programme dans la carte micro:bit et l'essayer en réel.
Niveau débutant
1- Mettre au point, à partir de l'algorithme donné ci-dessous, le programme d'un jeu où le joueur doit éviter des bombes qui tombent du ciel (voir description ci-dessous) :
Flappy est matérialisé par une LED clignotantes qui se déplace uniquement sur la colonne 0 (déplacement vers le haut par appui sur le bouton A et déplacement vers le bas par appui sur le bouton B). L'appui simultané sur les bouton A et B démarre la partie. Les obstacles sont matérialisées par 4 leds allumées d'une colonne de la matrice (luminosité réduite à la valeur 50). Le trou est matérialisé par la cinquième led qui est éteinte et dont la position est choisie aléatoirement lors de la première apparition du mur sur la colonne 4 de la matrice. Les 4 leds allumées se déplacent de la droite vers la gauche (de la colonne 4 vers la colonne 0 - la led éteinte ne bouge pas). La vitesse de déplacement de l'obstacle est définie par une pause de 500 ms entre deux colonnes. Si l'obstacle ne touche pas Flappy au niveau de la colonne0, le score s'incrémente (+1). Si l'obstacle touche Flappy, la partie est terminée et le score est affiché. Si le score est supérieur à 10, la vitesse de déplacement de l'obstacle est accélérée (pause entre deux colonnes = 300 ms). L'obstacle est composé de 5 briques (brique0 (brique de la ligne0), brique1 (brique de la ligne1), brique2 (brique de la ligne2), brique3 (brique de la ligne3), brique4 (brique de la ligne4)). Flappy et chaque brique des obstacles sont programmés avec des lutins (sprites - catégorie |
Coordonnées des LEDs de la matrice |
![]() |
Au démarrage Stocker dans la variable Flappy, de type sprite, les coordonées x = 0 et y = 2 (colonne 0, ligne 2) Régler le clignotement du sprite Flappy à 300 Stocker dans la variable Départ la valeur 0 Stocker dans la variable vitesse la valeur 500 Fin démarrage
Lorsque les boutons A et B sont pressés simultanément Stocker dans la variable Départ la valeur 1 Fin lorsque
Lorsque le bouton A est pressé Modifier la coordonnée Y du sprite Flappy de la quantité -1 (d'une ligne vers le haut) Fin lorsque
Lorsque le bouton B est pressé Modifier la coordonnée Y du sprite Flappy de la quantité +1 (d'une ligne vers le bas) Fin lorsque
Toujours faire Tant que la variable Départ est égale à 1 faire Stocker dans la variable trou un nombre choisi au hasard entre 0 et 4 Stocker dans la variable brique0, de type sprite, les coordonées x = 4 et y = 0 (colonne 4, ligne 0) Régler la luminosité du sprite brique0 à la valeur 50 Stocker dans la variable brique1, de type sprite, les coordonées x = 4 et y = 1 (colonne 4, ligne 1) Régler la luminosité du sprite brique1 à la valeur 50 Stocker dans la variable brique2, de type sprite, les coordonées x = 4 et y = 2 (colonne 4, ligne 2) Régler la luminosité du sprite brique2 à la valeur 50 Stocker dans la variable brique3, de type sprite, les coordonées x = 4 et y = 3 (colonne 4, ligne 3) Régler la luminosité du sprite brique3 à la valeur 50 Stocker dans la variable brique4, de type sprite, les coordonées x = 4 et y = 4 (colonne 4, ligne 4) Régler la luminosité du sprite brique4 à la valeur 50 Si la variable trou est égale à 0 (colonne 0) alors Régler la luminosité du sprite brique0 à la valeur 0 Sinon Si la variable trou est égale à 1 (colonne 1) alors Régler la luminosité du sprite brique1 à la valeur 0 Sinon Si la variable trou est égale à 2 (colonne 2) alors Régler la luminosité du sprite brique2 à la valeur 0 Sinon Si la variable trou est égale à 3 (colonne 3) alors Régler la luminosité du sprite brique3 à la valeur 0 Sinon Régler la luminosité du sprite brique4 à la valeur 0 Fin Si Si la variable score est supérieure à 10 alors
Fin Si Faire une pause d'une durée définie par la valeur contenue dans la variable vitesse Répéter 4 fois Si la variable trou est égale à 0 (colonne 0) alors Modifier la valeur de la coordonnée X du sprite brique1 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique2 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique3 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique4 de la quantité -1 Sinon Si la variable trou est égale à 1 (colonne 1) alors Modifier la valeur de la coordonnée X du sprite brique0 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique2 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique3 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique4 de la quantité -1 Sinon Si la variable trou est égale à 2 (colonne 2) alors Modifier la valeur de la coordonnée X du sprite brique0 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique1 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique3 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique4 de la quantité -1 Sinon Si la variable trou est égale à 3 (colonne 3) alors Modifier la valeur de la coordonnée X du sprite brique0 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique1 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique2 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique4 de la quantité -1 Sinon Modifier la valeur de la coordonnée X du sprite brique0 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique1 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique2 de la quantité -1 Modifier la valeur de la coordonnée X du sprite brique3 de la quantité -1 Fin Si Faire une pause d'une durée définie par la valeur contenue dans la variable vitesse Fin Répéter Si le sprite Flappy touche le sprite brique0 OU le sprite Flappy touche le sprite brique1 OU le sprite Flappy touche le sprite brique2 OU le sprite Flappy touche le sprite brique3 OU le sprite Flappy touche le sprite brique4 alors Fin du jeu (Game Over + affichage du score) Fin Si Supprimer le sprite brique0 (effacer) Supprimer le sprite brique1 (effacer) Supprimer le sprite brique2 (effacer) Supprimer le sprite brique3 (effacer) Supprimer le sprite brique4 (effacer) Stocker dans la variable score le résultat de la somme variable score + 1 Fin Tant que Fin Toujours |
|
2- Faire une démonstration du bon fonctionnement au Professeur sur le simulateur.
3- Insérer une photo du programme bloc dans votre document élève "Activité 61 - 4emeYilotZ" (impression écran > ctrl+V > recadrer).
4- Télécharger le programme dans la carte micro:bit et l'essayer en réel.
![]() |
Bonus rapidité Le Rapporteur de votre îlot doit prévenir le professeur que vous avez terminé l'étape 89. |