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 Duel Laser sur micro:bit 🎮

Projet

Ce projet se réalise par groupe de 4, organisés en 2 binômes.

Chaque binôme utilise une carte micro:bit.
Le but est de créer un jeu de tir en duel, où :

  • Une carte contrôle un joueur qui esquive.
  • L’autre carte contrôle un tireur qui tente de toucher le joueur.
  • Les cartes communiquent entre elles par radio.

Les rôles s’échangent automatiquement pendant la partie, et le jeu doit donner des retours visuels selon que le tir touche ou rate.


🎯 Règles du jeu

  • Un joueur déplace un point (le "personnage") en bas de l’écran pour esquiver les tirs à l'aide des boutons.
  • L’autre joueur déplace un viseur (en haut) et peut tirer.
  • Si le tir atteint la position du joueur → c’est touché.
  • Sinon → le tir est raté.
  • Des animations différentes sont affichées selon que le tir touche ou rate.
  • Après un certain temps ou nombre de tirs, les rôles s’inversent automatiquement.

🛠️ Étapes à suivre

Étape 1 : Initialiser la communication radio

Dans chaque programme :

  1. On définit pour chaque carte un groupe pour la radio (il faut que les 2 cartes soient dans le même groupe pour communiquer).

Étape 2 : Carte Joueur (celui qui esquive)

  1. Créer une variable xJoueur à 2, xTir initialisée à -1, vie à 3.
  2. Allumer une LED au point de coordonnées (xJoueur, 4)
  3. Déplacement :
    • bouton A pressé → décrémente xJoueur (si > 0)
    • bouton B pressé → incrémente xJoueur (si < 4)
    • Efface et réaffiche le point
  4. Lorsqu’un message "tir" est reçu par radio :
    • Changer la valeur de xTir par celle reçue par radio
    • Faire descendre un point, allant de (xTir, 0) jusqu’à (xTir, 4)
    • Si les coordonnées x du tir et du joueur sont égales, à la ligne 4 :
      • Afficher un crâne ☠️
      • Envoyer "touche" par radio
      • Retirer une vie
      • Si plus de vie → afficher "Perdu"
    • Sinon :
      • Afficher un smiley 😊
      • Envoyer "rate" par radio

Étape 3 : Carte Tireur

  1. Créer une variable xTireur à 2
  2. Allumer une LED au point de coordonnées (xTireur, 0)
  3. Déplacement :
    • bouton A pressé → décrémente xTireur (si > 0)
    • bouton B pressé → incrémente xTireur (si < 4)
  4. Tir :
    • A+B pressés → envoyer "tir" avec xTireur
  5. Réception :
    • Si "touche" → afficher une étoile ⭐ ou autre symbole de réussite
    • Si "rate" → afficher une croix

Étape 4 : Inversion des rôles

  1. Créer une variable mode : "joueur" ou "tireur"
  2. Après n tirs ou 30 secondes :
    • Envoyer "changer" par radio
  3. Quand "changer" est reçu :
    • Alterner le rôle
    • Réinitialiser les positions
    • Nettoyer l’écran

📄 À 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

💡 Astuces

  • Ligne 0 = haut de l’écran ; ligne 4 = bas
  • Utiliser effacer écran ou désactiver led (x, y) pour nettoyer l’affichage
  • Commencer avec 3 vies
  • Pour les rôles, on peut utiliser une variable mode différente sur chaque carte
  • Un effet visuel rapide (par ex. montrer icône, pause, puis effacer) permet d’attirer l'attention
  • Testez souvent à deux cartes.
  • Ajoutez des montrer nombre pour vérifier les valeurs
  • Travaillez étape par étape, commencez par les raquettes
  • Pensez à tester chaque partie séparément avant de tout combiner