Ignorer la navigation

Etape 8 - Défi programmation n°5

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.

 

OBJECTIF : réaliser un jeu "Evite les bombes".

Au collège, visionner la vidéo depuis T/travail/TechnologiePC/4eme/Activité 7-1/pluie bombes.mp4

Principe :

Le joueur est matérialisé par une LED qui se déplace uniquement sur la ligne 4 (déplacement à gauche par appui sur le bouton A et déplacement à droite par appui sur le bouton B).

L'appui simultané sur les bouton A et B démarre la partie.

Les bombes sont matérialisées par une des leds de la matrice. Elles tombent les unes après les autres à la verticale de la ligne 0 jusqu'à la ligne 4. La vitesse de chute des bombes est définie par une pause de 100 ms entre deux lignes. La colonne de chaque bombe est choisie de façon aléatoire. La luminosité des bombes est réduite à la valeur 50.

Si la bombe ne touche pas le joueur au niveau de la ligne 4 (bord bas de la matrice), le score s'incrémente (+1).

Si la bombe touche le joueur, la partie est terminée et le score est affiché.

Si le score est supérieur à 10, la vitesse de chute des bombes est accélérée (pause entre deux lignes = 75 ms)

Le joueur et les bombes seront programmés avec des lutins (sprites - catégorie )

Coordonnées des LEDs de la matrice

Etape 1 : créer le joueur

1- Créer le programme dans l'interface de programmation en ligne  correspondant à l'algorithme ci-dessous (créer le joueur au milieu de la ligne basse) :

Au démarrage

Stocker dans la variable Joueur, de type sprite, les coordonnées x = 2 et y = 4 (colonne 2, ligne 4)

Fin démarrage


2- Observer le résultat sur le simulateur.

Etape 2 : déplacer le joueur vers la droite

3- Ajouter au programme de l'étape précédente les modifications données ci-dessous (sur fond de couleur) :

Au démarrage

Stocker dans la variable Joueur, de type sprite, les coordonnées x = 2 et y = 4 (colonne 2, ligne 4)

Fin démarrage

   

Lorsque le bouton B est pressé

Le sprite Joueur se déplace de 1 (d'une colonne à droite)

Fin lorsque

4- Tester le fonctionnement sur le simulateur.

Etape 3 : déplacer le joueur vers la gauche

5- Ajouter au programme de l'étape précédente les modifications données ci-dessous (sur fond de couleur) :

Au démarrage

Stocker dans la variable Joueur, de type sprite, les coordonnées x = 2 et y = 4 (colonne 2, ligne 4)

Fin démarrage

    

Lorsque le bouton B est pressé

Le sprite Joueur se déplace de 1 (d'une colonne à droite)

Fin lorsque

    

Lorsque le bouton A est pressé

Le sprite Joueur se déplace de -1 (d'une colonne à gauche)

Fin lorsque

6- Tester le fonctionnement sur le simulateur.

Etape 4 : départ du jeu et création des bombes sur une colonne choisie au hasard de la ligne haute

7- Ajouter au programme de l'étape précédente les modifications données ci-dessous (sur fond de couleur) :

Au démarrage

Stocker dans la variable Joueur, de type sprite, les coordonnées x = 2 et y = 4 (colonne 2, ligne 4)

Stocker dans la variable Départ la valeur 0

Fin démarrage

   

Lorsque le bouton B est pressé

Le sprite Joueur se déplace de 1 (d'une colonne à droite)

Fin lorsque

   

Lorsque le bouton A est pressé

Le sprite Joueur se déplace de -1 (d'une colonne à gauche)

Fin lorsque

   

Lorsque les boutons A et B sont pressés simultanément

Stocker dans la variable Départ la valeur 1

Fin lorsque

   

Toujours faire

Tant que la variable Départ est égale à 1 faire

Stocker dans la variable bombe, de type sprite, les coordonées x = nombre choisi au hasard entre 0 et 4 et y = 0 (colonne au hasard, ligne 0)

Régler la luminosité du sprite bombe à la valeur 50

Fin Tant que

Fin Toujours

8- Tester le fonctionnement sur le simulateur.

Etape 5 : chute à vitesse lente des bombes

9- Ajouter au programme de l'étape précédente les modifications données ci-dessous (sur fond de couleur) :

Au démarrage

Stocker dans la variable Joueur, de type sprite, les coordonnées x = 2 et y = 4 (colonne 2, ligne 4)

Stocker dans la variable Départ la valeur 0

Stocker dans la variable vitesse la valeur 100

Fin démarrage

   

Lorsque le bouton B est pressé

Le sprite Joueur se déplace de 1 (d'une colonne à droite)

Fin lorsque

   

Lorsque le bouton A est pressé

Le sprite Joueur se déplace de -1 (d'une colonne à gauche)

Fin lorsque

   

Lorsque les boutons A et B sont pressés simultanément

Stocker dans la variable Départ la valeur 1

Fin lorsque

   

Toujours faire

Tant que la variable Départ est égale à 1 faire

Stocker dans la variable bombe, de type sprite, les coordonées x = nombre choisi au hasard entre 0 et 4 et y = 0 (colonne au hasard, ligne 0)

Régler la luminosité du sprite bombe à la valeur 50

Répéter 4 fois

Faire une pause d'une durée définie par la valeur contenue dans la variable vitesse

Modifier la valeur de la coordonnée Y du sprite bombe de +1

Fin Répéter

Faire une pause d'une durée définie par la valeur contenue dans la variable vitesse

Fin Tant que

Fin Toujours

10- Tester le fonctionnement sur le simulateur.

Etape 6 : effacer les bombes lorsqu'elles touchent le sol (ligne basse)

11- Ajouter au programme de l'étape précédente les modifications données ci-dessous (sur fond de couleur) :

Au démarrage

Stocker dans la variable Joueur, de type sprite, les coordonnées x = 2 et y = 4 (colonne 2, ligne 4)

Stocker dans la variable Départ la valeur 0

Stocker dans la variable vitesse la valeur 100

Fin démarrage

   

Lorsque le bouton B est pressé

Le sprite Joueur se déplace de 1 (d'une colonne à droite)

Fin lorsque

   

Lorsque le bouton A est pressé

Le sprite Joueur se déplace de -1 (d'une colonne à gauche)

Fin lorsque

   

Lorsque les boutons A et B sont pressés simultanément

Stocker dans la variable Départ la valeur 1

Fin lorsque

   

Toujours faire

Tant que la variable Départ est égale à 1 faire

Stocker dans la variable bombe, de type sprite, les coordonées x = nombre choisi au hasard entre 0 et 4 et y = 0 (colonne au hasard, ligne 0)

Régler la luminosité du sprite bombe à la valeur 50

Répéter 4 fois

Faire une pause d'une durée définie par la valeur contenue dans la variable vitesse

Modifier la valeur de la coordonnée Y du sprite bombe de +1

Fin Répéter

Faire une pause d'une durée définie par la valeur contenue dans la variable vitesse

Supprimer le sprite bombe (effacer)

Fin Tant que

Fin Toujours

12- Tester le fonctionnement sur le simulateur.

Etape 7 : incrémenter le score à chaque bombe évitée et fin du jeu si le joueur est touché par une bombe

13- Ajouter au programme de l'étape précédente les modifications données ci-dessous (sur fond de couleur) :

Au démarrage

Stocker dans la variable Joueur, de type sprite, les coordonnées x = 2 et y = 4 (colonne 2, ligne 4)

Stocker dans la variable Départ la valeur 0

Stocker dans la variable vitesse la valeur 100

Fin démarrage

   

Lorsque le bouton B est pressé

Le sprite Joueur se déplace de 1 (d'une colonne à droite)

Fin lorsque

   

Lorsque le bouton A est pressé

Le sprite Joueur se déplace de -1 (d'une colonne à gauche)

Fin lorsque

   

Lorsque les boutons A et B sont pressés simultanément

Stocker dans la variable Départ la valeur 1

Fin lorsque

   

Toujours faire

Tant que la variable Départ est égale à 1 faire

Stocker dans la variable bombe, de type sprite, les coordonées x = nombre choisi au hasard entre 0 et 4 et y = 0 (colonne au hasard, ligne 0)

Régler la luminosité du sprite bombe à la valeur 50

Répéter 4 fois

Faire une pause d'une durée définie par la valeur contenue dans la variable vitesse

Modifier la valeur de la coordonnée Y du sprite bombe de +1

Fin Répéter

Faire une pause d'une durée définie par la valeur contenue dans la variable vitesse

Si le sprite bombe touche le sprite Joueur alors

Fin du jeu (Game Over + affichage du score)

Fin Si

Stocker dans la variable score le résultat de la somme variable score + 1

Supprimer le sprite bombe (effacer)

Fin Tant que

Fin Toujours

14- Tester le fonctionnement sur le simulateur.

Etape 8 : accélérer la chute des bombes si le score est supérieur à 10

15- Ajouter au programme de l'étape précédente les modifications données ci-dessous (sur fond de couleur) :

Au démarrage

Stocker dans la variable Joueur, de type sprite, les coordonnées x = 2 et y = 4 (colonne 2, ligne 4)

Stocker dans la variable Départ la valeur 0

Stocker dans la variable vitesse la valeur 100

Fin démarrage

   

Lorsque le bouton B est pressé

Le sprite Joueur se déplace de 1 (d'une colonne à droite)

Fin lorsque

   

Lorsque le bouton A est pressé

Le sprite Joueur se déplace de -1 (d'une colonne à gauche)

Fin lorsque

   

Lorsque les boutons A et B sont pressés simultanément

Stocker dans la variable Départ la valeur 1

Fin lorsque

   

Toujours faire

Tant que la variable Départ est égale à 1 faire

Stocker dans la variable bombe, de type sprite, les coordonées x = nombre choisi au hasard entre 0 et 4 et y = 0 (colonne au hasard, ligne 0)

Régler la luminosité du sprite bombe à la valeur 50

Si la variable score est supérieure à 10 alors

Stocker dans la variable vitesse la valeur 75

Fin Si

Répéter 4 fois

Faire une pause d'une durée définie par la valeur contenue dans la variable vitesse

Modifier la valeur de la coordonnée Y du sprite bombe de +1

Fin Répéter

Faire une pause d'une durée définie par la valeur contenue dans la variable vitesse

Si le sprite bombe touche le sprite Joueur alors

Fin du jeu (Game Over + affichage du score)

Fin Si

Stocker dans la variable score le résultat de la somme variable score + 1

Supprimer le sprite bombe (effacer)

Fin Tant que

Fin Toujours

16- Tester le fonctionnement sur le simulateur.

17- Faire une démonstration du bon fonctionnement au Professeur sur le simulateur.

18- Insérer une photo du programme bloc dans votre document élève "Activité 71 - 4emeYilotZ" (impression écran > ctrl+V > recadrer).

19- 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 8.