Skip to content

Activité

Téléportation des canards en groupe

Intermédiaire | MakeCode, Python | Accéléromètre, Radio | Communication, Logique booléenne, Ondes radio

Étape 1 : Fais-le

Qu'est-ce que c'est ?

Un jeu de « patate chaude » en groupe à l’aide de la radio – ou du canard chaud !

3 micro:bits, 1 secoué et montrant un canard sur son écran LED

Comment ça marche

  • Comme le jeu Téléportez le canard, celui-ci utilise la radio pour envoyer un « canard » par les airs entre les micro:bits. Ce jeu ne fonctionne qu'avec 2 joueurs car il envoie le même message à tout le monde – bientôt vous trouverez presque tout le monde avait un canard et n'importe qui pourrait en lancer un.
  • Si vous avez plus de 2 joueurs, chaque micro:bit doit avoir un moyen de choisir quel joueur obtiendra le canard pour que le programme de chaque joueur ait un numéro d'identification unique, commençant par le 1.
  • Nous stockons ceci dans une variable appeléeID, et vous devrez la changer à 2, 3, 4 etc pour chaque joueur avant de charger le programme sur leurs micro:bits.
  • Définissez la variable joueurs au nombre de personnes pour s'assurer que tout le monde a une chance d'obtenir le canard. Le programme affiche le numéro d’ID du joueur sur l’écran LED au début, afin de savoir qui a quel numéro.
  • Pour s'assurer que seul le joueur qui a le canard peut l'envoyer, le programme n'envoie un message quand vous le secouez que si vous avez le canard. Il garde une trace de ceci en utilisant une variable booléenne appelée hasDuck. Les variables booléennes ne peuvent avoir que deux valeurs : True ou False. Au début, seul le joueur 1 a le canard, personne d'autre ne peut le lancer.
  • Quand le joueur 1 secoue son micro:bit, le programme génère un nombre aléatoire entre 1 et le nombre de joueurs. Si le nombre aléatoire est différent de son propre numéro d’ID, il envoie le nouveau numéro d’ID par radio, efface son écran et définit sa variable hasDuck à False.
  • Si le nombre aléatoire est égal à son propre ID, elle devra relancer mais c’est mieux que le canard qui s’envoie – et se perd dans l’hyper espace!
  • Si votre micro:bit reçoit un nombre, il vérifie s'il est égal à votre numéro d'identification. Si c'est le cas, félicitations, vous avez maintenant le canard! Un canard apparaît sur votre écran LED, et votre variable hasDuck se définie à True, ce qui signifie que vous pouvez maintenant lancer le canard à quelqu'un d'autre.
  • S'il vous plaît soyez un lanceur de canards responsable: assurez-vous que vous faites pas tomber votre micro:bit ou frappez un ami dans votre plaisir de ce jeu.

Ce dont vous aurez besoin

  • 3 micro:bits ou plus
  • MakeCode ou éditeur Python
  • boîtiers de piles (optionnel)
  • un groupe de personnes avec qui jouer

Étape 2 : Programme-le

1from microbit import *
2import radio
3import random
4
5radio.config(group=42)
6players = 3
7ID = 3
8display.show(ID)
9if ID == 1:
10    hasDuck = True
11else:
12    hasDuck = False
13radio.on()
14
15while True:
16    message = radio.receive()
17    if accelerometer.was_gesture('shake'):
18        if hasDuck:
19            sendTo = random.randint(1, players)
20            if sendTo != ID:
21                display.clear()
22                radio.send(str(sendTo))
23    if message:
24        if message == str(ID):
25            hasDuck = True
26            display.show(Image.DUCK)
27        else:
28            hasDuck = False
29    

Étape 3 : Améliore-le

  • Changez le programme pour envoyer d'autres choses au lieu de canards.
  • Pour le moment, s’il choisit un nombre aléatoire qui est le même que votre propre numéro d’identité, vous devez secouer à nouveau. Modifiez le programme pour que cela ne se produise jamais. Il peut y avoir plus d'une façon de le faire.
  • Joueur 1 toujours a son canard au début de la partie. Pourriez-vous améliorer le programme afin que le premier joueur avec le canard soit choisi au hasard? Comment pourriez-vous communiquer cela au micro:bit de chaque joueur ?