Aller au contenu principal
Objectifs
  1. Manipuler un système embarqué ;
  2. Récupérer des informations via des capteurs ;
  3. Créer des événements grâce aux actionneurs ;
  4. Envoyer et recevoir des informations.

Projet - Créer le jeu de Pong sur micro:bit 🎮

Projet

Le projet se fait par groupe de 4 (2 binômes). Le but est de créer le jeu de Pong avec 2 cartes micro:bit, sans fil, à l'aide des boutons, de l'affichage LED, et la communication par radio.

Règles du jeu

  • Chaque joueur contrôle une raquette sur sa carte (boutons A et B pour monter/descendre).
  • Une balle se déplace entre les deux cartes.
  • Si un joueur rate la balle, il perd un point.
  • Le score est affiché ou compté à la fin (quand il n'y a plus de points).

🔧 Étapes à suivre

Étape 1 : Préparer la communication radio

  1. Dans les blocs Radio, ajoutez :
    • définir le groupe radio sur ... au démarrage (il faut que les 2 micro:bits aient le même nombre).
    • Cela permet aux micro:bits de se parler.

Étape 2 : Gérer votre raquette

  1. Créez une variable yRaquette (valeur de départ = 2).
  2. Quand on appuie sur A :
    • Si yRaquette > 0, on la décrémente (on lui retire 1).
    • On envoie raquette et sa valeur par radio.
  3. Quand on appuie sur B :
    • Si yRaquette < 3, on l’incrémente.
    • On envoie aussi raquette et sa valeur par radio.

Étape 3 : Réception de la raquette adverse

  1. Créez une variable yAdverse (valeur de départ = 2).
  2. Quand on reçoit un nom et une valeur par radio :
    • Si le nom est "raquette", on met yAdverse = valeur reçue.

Étape 4 : Affichage des raquettes

Dans une boucle toujours :

  1. Effacer l'écran.
  2. Afficher votre raquette sur la colonne 0 :
    • allumer en x=0 y=yRaquette
    • allumer en x=10 y=yRaquette+1
  3. Afficher la raquette adverse sur la colonne 4.

alt text

Étape 5 : Gérer la balle

  1. Créez :
    • balleX (valeur initiale = 1),
    • balleY (valeur initiale = 2),
    • directionX (= 1),
    • directionY (= 1),
    • possedeBalle (= vrai pour une seule carte).
  2. Si possedeBalle = vrai, affichez la balle (ex: allumer en x=balleX y=balleY).
  3. Ajoutez une pause (300 ms) pour ralentir le jeu.
  4. Calculez les prochaines coordonnées :
    • balleX + directionX, balleY + directionY
  5. Si la balle touche le haut ou le bas, inversez directionY.

Étape 6 : Gérer les rebonds et la perte

  1. Si la balle va vers la colonne 0 :
    • Si elle est sur votre raquette → rebond (inverser directionX)
    • Sinon → possedeBalle = faux, affichez une croix ❌
  2. Si la balle sort (x > 4) :
    • Envoyer ballY par radio
    • possedeBalle = faux

Étape 7 : Réception de la balle

  1. Si vous recevez ballY :
    • balleX = 0
    • balleY = 4 - valeur reçue (effet miroir)
    • directionX = 1, possedeBalle = vrai

✅ À rendre

  • Une démonstration fonctionnelle du jeu entre les 2 micro:bits.
  • Un document word (avec noms et prénoms des membres du groupe) avec :
    • Rôle de chaque binôme
    • Fonctions principales réalisées
    • Ce qui a bien ou mal fonctionné
    • Le programme enregistré sous forme de lien MakeCode :
      • Mettre vos noms dans Project Title
      • Cliquer sur Partager le projet
      • Copier le lien et l'intégrer dans le word

🧩 Pour aller plus loin (facultatif)

  • Ajouter un système de score (variable + affichage).
  • Accélérer la balle progressivement.
  • Ajouter un son lors du rebond.
  • Afficher un message de victoire/défaite.

🛠 Astuces

  • Testez souvent à deux cartes.
  • Ajoutez des montrer nombre pour vérifier les valeurs.
  • Travaillez étape par étape, commencez par les raquettes.