Réflexes

Introduction

Tu vas créer un jeu pour 2 joueurs pour voir qui a les réflexes les plus rapides. Le jeu consistera à afficher une image après un délai aléatoire : celui qui appuie sur son bouton le premier gagne.

Instructions : Si tu lis ceci en ligne, attend qu’une image apparaisse sur la micro:bit ci-dessous et vous appuiez sur A or B pour voir qui est le plus rapide.

Introduction

Dans ce projet, les enfants vont construire un jeu de réflexes. Une image sera affichée sur la micro:bit après un délai d’une durée aléatoire : la première personne qui appuie sur son bouton gagne.

Les enfants utiliseront tous les concepts de programmation utilisés dans les projets précédents, et découvriront les opérateurs booléens pour attendre l’appui d’un bouton.

Matériaux

Pour ce projet, il faudra utiliser l’éditeur PXT microbit.

Vous trouverez une version terminée de ce projet à l’adresse pxt.microbit.org/#pub:50800-81674-84873-32898, et le fichier compilé .hex peuvent être téléchargés en cliquant sur le lien ‘Matériaux du projet’, qui inclut :

  • microbit-Reaction.hex

Il y a également une version du projet qui inclus le défi “Conserve le score”. Elle se trouve à l’adresse pxt.microbit.org/#pub:23812-11544-45113-45147, et le fichier compilé .hex peuvent être téléchargés en cliquant sur le lien ‘Matériaux du projet’, qui inclut :

  • microbit-Reaction-Score.hex

Objectifs d’apprentissage

  • Opérateurs booléens :
    • ET;
    • PAS.

Ce projet couvre des éléments du Raspberry Pi Digital Making Curriculum :

Défis

  • “Choisis ta propre image” - changer l’image affichée sur la micro:bit.
  • “Choisis ton propre délai” - changer les paramètres de la fonction aléatoire.
  • “Conserve le score” - utilise des variables pour garder une trace des scores des joueurs.

A vos marques !

Commençons par afficher une image après un délai d’une durée aléatoire.

  • Va sur jumpto.cc/pxt-new et démarre un nouveau projet dans l’éditeur PXT. Appelle ton ouveau projet ‘Reaction’.
  • Avant d’afficher une image, le jeu doit attendre pendant une durée aléatoire.

Place un bloc pause dans le bloc toujours et change la valeur de pause en mettant 1000 ms :

  • Ajoute un autre bloc pause et place un bloc choisir au hasard dans la valeur du bloc pause et met sa valeur à 4000 :

Souviens toi que 1000 ms font 1 seconde, donc il y aura une pause d’au moins une seconde et d’un maximum de 5 secondes (1000 + 4000 ms).

Tu peux faire changer les valeurs ‘1000’ et ‘4000’ modifier le minimum et le maximum de pause si tu le souhaites.

  • Après l’attente, le jeu doit montrer une image pour que les joueurs sachent qu’ils doivent appuyer sur leur bouton.

  • Clique ‘lancer’ pour tester ton projet. Tu devrais voir apparaître une image après un délai aléatoire.
  • Ajoute du code à la fin de la boucle toujours pour afficher ton image pendant 1 seconde puis effacer l’affichage.

  • Teste ton projet. Tu doit voir ton image apparaître aléatoirement puis disparaître.

Défi: Choisis ta propre image

Peux tu changer l’image qui s’affiche ?


Défi: Choisis ton propre délai

Modifie les valeurs de ton bloc aléatoire. Tu peux accélérer ton jeu pour le rendre plus difficile, ou le ralentir pour augmenter le suspense !


Attente du gagnant

Ajoute du code pour attendre jusqu’à ce qu’un bouton soit appuyé.

  • Après avoir affiché une image, tu as besoin d’attendre jusqu’à ce que quelqu’un appuie sur son bouton.

Une autre façon de le dire serait que tu dois attendre aussi longtemps que le bouton A et le bouton B n’ont pas été appuyés.

Pour se faire, ajoute une boucle lorsque depuis la section ‘Contrôle’. La boucle lorsque doit être ajoutée juste après le bloc montrer Leds.

  • Place un et de ‘Logique’ dans ton bloc lorsque :

  • Place un pas de ‘Logique’ dans la partie gauche de ton et :

  • Place un bloc bouton A est pressé de ‘Entrées’ après le pas :

Répète les 2 étapes précédentes et ajoute un pas bouton B est pressé dans la partie droite de ta boucle tant que.

  • Tu peux ensuite ajouter un délai très court (20 ms), pour que ta boucle tant que attende aussi longtemps qu’un bouton n’est pas appuyé.

  • Teste ton projet. Ton jeu devrait maintenant afficher une image et attendre aussi longtemps que les boutons A et B n’ont pas été appuyés.

Qui est le plus rapide ?

Essayons de voir qui est a appuyé son bouton en premier.

  • Si le bouton A a été appuyé, nous voulons pointer vers le joueur A. Pour faire cela, ajoute un bloc si après ta boucle tant que, et remplace test par bouton A est pressé.

  • Tu peux ensuite utiliser le bloc montrer LEDs pour afficher une flèche pointant vers le joueur A.

  • Tu devrais pouvoir faire de même pour le bouton B.


Défi: Conserve le score

Peux tu utiliser deux variables appellées joueur1 et joueurB pour garder une trace du score de chaque joueur ?

Tu auras besoin de mettre les deux scores à 0 au démarrage du jeu en plaçant ton code dans le bloc ‘au démarrage’.

Et ajoute 1 à chaque joueur qui gagne une manche.

Tu devras penser aussi à un moyen d’afficher le score.

Produit ajouté avec succès à la comparaison des produits