Jeu de dés

Créez des dés virtuels à l’aide de l’éditeur MakeCode

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

Introduction

Ce projet présente aux étudiants la boucle conditionnelle : SI... ALORS... SINON et comment contrôler les DEL individuellement.

Guide de l'enseignant

Ouvrir Afficher les ressources pour enseignants

Activité

5 Étapes

Première étape

Il s’agit d’un programme qui permet à l’utilisateur de secouer le micro:bit pour afficher une tête de mort. Dans l’éditeur MakeCode, sélectionnez les blocs d’entrée dans le menu des blocs et sélectionnez le bloc « shake ».


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

})
          

Une fois dans l’espace de travail, le bloc « On » peut être remplacé par un certain nombre de gestes, comme une inclinaison à gauche ou à droite. Pour ce projet, le geste de secousse est sélectionné.

Click the arrow on the shake block to change the gesture

Deuxième étape

Maintenant, votre programme réagit au geste de rétroaction que nous devons ajouter. Dans les blocs de variables, ajoutez un bloc « set item to ».


let item = 0
input.onGesture(Gesture.Shake, () => {
    item = 0
})
          

Renommez la variable en quelque chose de plus approprié, comme « Lancez ». Cliquez sur la flèche à côté de « item » et sélectionnez « Rename variable »; une fenêtre contextuelle vous permettra de changer le nom de la variable.

Click the arrow to rename the variable
Enter a name and click 'ok' to rename a variable

Maintenant qu’une variable appelée « Lancez » a été créée, nous devons choisir un nombre aléatoire entre 1 et 6. Dans le menu des blocs, sélectionnez l’option « Math » et sélectionnez « pick random 0 to 10 ».

Drag the random block from the 'math' menu

Glissez le bloc « pick random » dans l’espace de travail et connectez-le au bloc « Définir la variable » en remplaçant le « 0 » par « 1 » et le « 10 » par « 6 ». Maintenant, le programme choisira un nombre aléatoire entre 1 et 6 chaque fois que le micro:bit sera secoué. Le numéro est stocké dans la variable « Lancez ».


let Lancez = 0
input.onGesture(Gesture.Shake, function () {
    roll = Math.randomRange(1, 6)
})
          

Troisième étape

Le micro : bit doit maintenant afficher un résultat différent, basé sur la variable « Lancez ». C'est ce qu'on appelle une sélection. Dans ce cas, nous utiliserons la boucle SI... ALORS... SINON. Pour ajouter une sélection au micro : bit, on le retrouve dans le menu de blocs sous l’option logique.

Drag the block from the logic section

Ajoutez un énoncé logique « SI ALORS SINON » et cliquez sur le bouton « + » pour modifier la logique afin d’avoir plusieurs conditions.


let Lancez = 0
input.onGesture(Gesture.Shake, function () {
    roll = Math.randomRange(1, 6)
    if (true) {
      
    } else {
      
    }
})
          

Comme il y a 6 options possibles, 4 énoncés « Autres » doivent être ajoutés. Étant donné qu’il y a le premier énoncé « IF », suivi de quatre énoncés «ELSE IF» et le dernier énoncé « ELSE», cela couvre six options au total.


let Lancez = 0
input.onGesture(Gesture.Shake, function () {
    roll = Math.randomRange(1, 6)
    if (true) {
      
    } else if (false) {
      
    } else if (false) {
      
    } else if (false) {
      
    } else if (false) {
      
    } else {
      
    }
})
          

Quatrième étape

Nous devons maintenant créer un énoncé logique sur lequel l’énoncé IF doit être fondé pour permettre la sélection. Encore une fois, à partir de l’option « logique » dans le menu des blocs, sélectionnez le bloc « equals ».

Drag the equals block from the logic menu

Once selected drag the “equals” block onto the “IF” statement block.

Pour s’assurer que le micro:bit fonde l’énoncé IF sur le nombre aléatoire, la valeur stockée dans la variable « Lancez » doit être vérifiée. La variable « Lancez » se trouve dans l’option de la variable dans le menu des blocs.

Drag the 'roll' variable from the variable menu

Le premier des 6 contrôles à réaliser est si la variable « Lancez » est égale à 1. Placez la variable « Lancez » dans le bloc « est égal à » (=).

Maintenant ce processus doit être répété pour les 4 autres déclarations de « SINON Si ». Par un clic droit sur le bloc « égale », il peut être dupliqué et modifié avec les différentes valeurs possibles.

Right click to duplicate blocks

let roll = 0
input.onGesture(Gesture.Shake, function () {
    roll = Math.randomRange(1, 6)
    if (roll == 1) {
      
    } else if (roll == 2) {
      
    } else if (roll == 3) {
      
    } else if (roll == 4) {
      
    } else if (roll == 5) {
      
    } else {
      
    }
})
          

Step Five

L’étape finale du programme est maintenant pour afficher un motif différent pour les différentes têtes de mort. Dans l’option de base dans le menu de bloc, sélectionnez le bloc « show LED ».

Drag a 'show LEDs' block from the basic tab

Déplacez le bloc "show LED" dans l'espace de travail et placez-le sous le premier énoncé « IF ». En cliquant sur les carrés bleu foncé, vous pouvez créer le modèle de matrice requis (les DEL « allumées»s'affichent en blanc). Dans cet exemple, le schéma pour le chiffre 1 est indiqué ci-dessous.

The centre LED is on

Ce bloc peut être reproduit cinq fois pour les autres matrices jusqu’à ce que toutes les options aient été remplies. Le programme final est illustré ci-dessous. Sauvegardez le projet et téléchargez-le dans le Micro:bit.


let roll = 0
input.onGesture(Gesture.Shake, function () {
    roll = Math.randomRange(1, 6)
    if (roll == 1) {
        basic.showLeds(`
            . . . . .
            . . . . .
            . . # . .
            . . . . .
            . . . . .
            `)
    } else if (roll == 2) {
        basic.showLeds(`
            . . . . .
            . . . # .
            . . . . .
            . # . . .
            . . . . .
            `)
    } else if (roll == 3) {
        basic.showLeds(`
            # . . . .
            . . . . .
            . . # . .
            . . . . .
            . . . . #
            `)
    } else if (roll == 4) {
        basic.showLeds(`
            . . . . .
            . # . # .
            . . . . .
            . # . # .
            . . . . .
            `)
    } else if (roll == 5) {
        basic.showLeds(`
            . . . . .
            . # . # .
            . . # . .
            . # . # .
            . . . . .
            `)
    } else {
        basic.showLeds(`
            . # . # .
            . . . . .
            . # . # .
            . . . . .
            . # . # .
            `)
    }
})
          

Challenge

Try to add the following functionality:

  • Ajouter une animation en boucle des têtes de mort
  • Permettre à l’utilisateur d’indiquer le nombre de possibilités, c.‑à‑d. 6, 8 ou 12

Pour en savoir plus

L’activité « Action ou Vérité » utilise la commande de geste, l’écran DEL et présente de nouveau les instructions IF, mais exécute deux boucles de programmation en même temps.

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