8, le chiffre magique

Fabriquer un jeu amusant de questions/Réponses avec MakeCode !

  • Get started
  • MakeCode
  • Random
  • Variables
  • Games
Print lesson
  • Âges 8+
  • 30 min
  • MakeCode Editor

Introduction

Ce projet apprend l’utilisateur à créer un jeu de questions/réponses. Le jeu final permet de poser une question au Micro:bit et il répond par une réponse aléatoire !

Guide de l'enseignant

Ouvrir Afficher les ressources pour enseignants

Activité

7 Étapes

Première étape

Ce programme crée un jeu de questions/réponses. Il demande à l’utilisateur de poser une question et il donnera une réponse aléatoire.

La première étape consiste à programmer l'appareil pour demander à l'utilisateur de poser une question. Une chaîne de caractères doit être affichée à l’écran et cela se fait à l’aide du bloc “show string”, soit « Afficher la chaîne », qui se trouve dans l’option de base du menu de bloc.

Drag the show string block

Faites glisser le bloc « show string » dans l’espace de travail et placez-le dans un bloc « on start ». Cliquez sur le texte « hello! » et remplacez-le par « Posez une question ! »


basic.showString("Posez une question !")
 

          

La prochaine étape consiste à afficher le chiffre « 8 » à l’écran pour représenter le logo de la boule magique 8. Les étapes sont répétées.

Drag the show number block

basic.showString("Posez une question !")
basic.showNumber(8)
 

          

Deuxième étape

Maintenant, le programme affiche « posez une question » et « 8 », l’utilisateur doit obtenir une réponse du Micro:bit. Pour ce faire, on utilise le geste "secouer", soit « Shake », comme entrée. Dans le menu des blocs, choisissez l’option « Input » et sélectionnez le bloc « On shake » et faites-le glisser dans l’espace de travail.

Drag the on shake block

Une fois dans l'espace de travail, le bloc "on" peut être changé en un certain nombre de gestes, tels que l'inclinaison à gauche ou à droite. Pour ce projet, le geste de secouer est sélectionné.

Cliquer sur la flèche pour changer le geste

input.onGesture(Gesture.Shake, function () {
  
})
          

L'affichage du Micro:bit doit d'abord être mis à jour en utilisant un bloc "Clear". Ceci effacera tout motif actuellement affiché sur le Micro:bit, qu'il s'agisse de la phrase "Posez une question !" ou du chiffre "8". Le bloc "clear screen" se trouve dans l'option "basic" sous l'option "More" du menu bloc. Faites glisser le bloc sur l'espace de travail et placez-le dans le bloc "on shake".

Drag the clear screen block

input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
})
          

Troisième étape

Maintenant que le Micro:bit a été programmé pour qu'il réponde à un geste de secousse, l'étape suivante consiste à créer une variable dans laquelle un nombre aléatoire sera stocké. Dans le menu bloc, sélectionnez l'onglet "Variables" et cliquez sur "Make a variable", soit "Créer une variable".

Click 'Make a variable' in the variables tab

Une boîte de dialogue vous demandera alors de nommer votre variable. Dans cet exemple, nommez-le "Aléatoire".

Click 'ok' to rename your variable

Lorsque le Micro:bit est secoué, nous voulons que le nombre aléatoire soit généré et stocké dans la variable "Aléatoire". Pour ce faire, ajoutez le bloc "envoyer la donnée vers" , soit "Set item to", dans l'espace de travail.

Drag the 'set item to' block into the workspace

Placez le bloc "Set item to" sous le bloc "clear screen" et cliquez sur la flèche vers le bas à côté du mot "item". Ceci nous permettra de sélectionner la variable appelée "Aléatoire" qui sera actuellement mise à "0" lorsque le Micro:bit sera secoué.


input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
})
          

Quatrième étape

Maintenant que la variable est mise à "0" lorsque le Micro:bit est secoué, nous devons lui assigner un nombre aléatoire. Dans le menu de bloc, sélectionnez l'option "Math" et sélectionnez "Choisir au hasard de 0 à 10", soit "pick random 0 to 10".

Drag a 'pick random' block from the 'Math' section

Faites glisser le bloc "pick random" sur l'espace de travail et joignez-le au bloc "set random". Un nombre aléatoire entre 1 et 3 nous donnera les 3 options nécessaires, alors changez le nombre "0" en "1" et "10" en "3".


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
})
          

Cinquième étape

L'étape suivante consiste à ajouter un processus de sélection à l'aide de l'instruction IF qui se trouve dans l'option "Logic" du menu bloc.

Drag an 'if' block to the workspace

Faites glisser le bloc "IF" dans l'espace de travail et connectez-le pour suivre le bloc "aléatoire". Ainsi, si le Micro:bit est secoué, l'écran est effacé, un nombre aléatoire est généré et stocké dans la variable "Aléatoire" - maintenant nous devons définir ce qui va se passer pour chacune des différentes conditions de la variable.


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (true) {

    } else {

    }
})
          

Comme il y a plus de 2 conditions dans cette sélection, un autre énoncé de sélection est requis, un "Else If". Cliquez sur '+' dans le bloc "IF" pour ajouter d'autres options et d'autres instructions.


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (true) {
      
    } else if (false) {
      
    } else {
      
    }
})
          

Ensuite, nous devons remplir la déclaration "IF" pour permettre la sélection. A partir de l'option "Logic" du menu Bloc, sélectionnez le bloc "Egal", soit "Equals".

Drag an equals block to the workspace

Une fois sélectionné, faites glisser le bloc « Equals » sur le bloc « IF ».


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (0 == 0) {
      
    } else if (false) {
      
    } else {
      
    }
})
          

Sixième étape

Pour s'assurer que le Micro:bit base l'instruction "IF" sur le nombre aléatoire, la valeur stockée dans la variable "Aléatoire" doit être vérifiée. La variable "Aléatoire" se trouve dans l'option "Variables" du menu bloc.

Drag the 'random' variable from the variables tab

Le bloc variable "Aléatoire" est placé dans le bloc "Equals" pour tester l'instruction logique "IF". Si la variable "Aléatoire" est égale à "3", la première option est sélectionnée, sinon la deuxième ou la troisième option est choisie.


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (Random == 3) {
      
    } else if (false) {
      
    } else {
      
    }
})
          

Ainsi, le Micro:bit peut basculer entre trois options, cliquez sur '+' dans le bloc 'IF' pour que le bloc ait 1 état 'IF', 1 état 'ELSE IF', et 1 état 'ELSE' . Votre code devrait ressembler à ceci :


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (Random == 3) {
      
    } else if (Random == 2) {
      
    } else {
      
    }
})
          

Septième étape

Maintenant le micro : bit a 3 options possibles selon le nombre aléatoire généré, l’étape suivante consiste à donner à l’utilisateur une réponse à leur question. Ceci est réalisé en sélectionnant le bloc « show string » dans l’option du menu bloc de base et en le faisant glisser sur l’espace de travail.

Drag a 'show string' block to the workspace

Pour chacune des parties «THEN» du bloc «IF», il faut un bloc «Show string». Faites en glisser 3 dans le menu ou cliquez avec le bouton droit de la souris sur le bloc à dupliquer une fois dans l'espace de travail. Les chaînes devraient être modifiés pour « Oui », « non » et « Je ne sais pas ».


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (Random == 3) {
      
    } else if (Random == 2) {
      
    } else {
      
    }
})
          

Une fois la réponse générée, la dernière partie du programme est de coder le Micro:bit pour afficher à nouveau le chiffre "8". Un autre bloc "show string" est nécessaire et placé après l'instruction "IF".


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (Random == 3) {
        basic.showString("YES")
    } else if (Random == 2) {
        basic.showString("NO")
    } else {
        basic.showString("I DON'T KNOW")
    }
    basic.showNumber(8)
})
          

Sauvegardez le projet et téléchargez le dans le Micro:bit.


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (Random == 3) {
        basic.showString("YES")
    } else if (Random == 2) {
        basic.showString("NO")
    } else {
        basic.showString("I DON'T KNOW")
    }
    basic.showNumber(8)
})
basic.showString("Ask a question!")
basic.showNumber(8)
          

Challenge

Essayez d’ajouter les fonctionnalités suivantes :

  • Ajout de réponses supplémentaires
  • Ajout d'une animation de réflexion à la suite du geste de secouer.

En savoir plus

L'activité "Cœur clignotant" utilise les LED pour afficher une image sur un second Micro:bit en utilisant les blocs "radio".

Selecting this opens external content from our support system, which adheres to their privacy policy.