4.2.8 Deviner le nombre

4.2.8.1 Vue d’ensemble

Img

Dans ce projet, nous jouons à un jeu de devinette de nombre avec une carte micro:bit, une carte de contrôle gamepad et un écran OLED. Lorsqu’on devine le bon nombre, l’OLED affiche “Génial !!!” ; si la supposition est trop haute ou trop basse, il affiche respectivement “Trop haut !” / “Trop bas !”, ainsi que la plage correspondante des nombres possibles.

Img

4.2.8.2 Connaissances des composants

Ce projet utilise le même écran OLED que le Projet 07. Veuillez vous référer à la section 4.2.7.2 pour ses connaissances sur les composants.

4.2.8.3 Pièces requises

Img

Img

Img

micro:bit V2 board (fourni par l’utilisateur) ×1

micro:bit Smart Gamepad (assemblé) ×1

AAA battery (fourni par l’utilisateur) ×4

Img

Img

OLED display (fourni par l’utilisateur)×1

F-F DuPont wire(fourni par l’utilisateur) x4

4.2.8.4 Schéma de câblage

Img

Après avoir câblé comme montré ci-dessus, insérez la micro:bit dans la fente de la carte de contrôle gamepad.

OLED display

micro:bit gamepad control board

micro:bit board pin

GND

GND

GND

VCC

3V

3V

SDA

SDA

P20

SCL

SCL

P19

4.2.8.5 Flux du code

Img

4.2.8.6 Code de test

⚠️ Remarque : la bibliothèque OLED est incluse ici, nous devons donc importer : https://github.com/keyestudio/pxt-environment-kit-master.

Code complet :

Img

Img

Brève explication :

① Initialiser le bit du drapeau de mise à jour de l’écran, définir la variable mode à 0 (0 - prêt du jeu, 1 - jeu en cours), et initialiser l’écran OLED.

Img

② Pendant la préparation du jeu, définir la plage de devinettes, la valeur initiale de l’estimation, la valeur cible et l’estimation.

Img

③ Mettre à jour la plage de valeurs et la valeur d’estimation sur l’OLED. Afficher les invites correspondantes lorsque le bit de drapeau d’état du résultat change : “Trop haut !” lorsque state=1 ; “Trop bas !” lorsque state=2 ; et “Génial !!!” lorsque state=3.

Et définir le mode sur prêt du jeu et attendre 1000 millisecondes (1 s).

Img

④ Appuyer sur C pour temp+1 ; si la valeur d’estimation dépasse le maximum, la définir comme nouveau maximum.

Appuyer sur E pour temp-1 ; si la valeur d’estimation est inférieure au minimum, la définir comme nouveau minimum.

Img

⑤ Appuyer sur D pour comparer la valeur d’estimation avec la valeur cible. Si temp est plus grand, enregistrer le nouveau maximum max2 et entrer en State 1 ; si temp est plus petit, enregistrer le nouveau minimum min2 et entrer en State 2 ; si les deux valeurs sont égales, aller en State 3.

Enfin, mettre à jour l’affichage avec un délai de 1000 millisecondes.

Img

4.2.8.7 Résultat du test

Img

Après avoir transféré le code, insérez la carte micro:bit dans la fente du gamepad (piles installées), et mettez l’interrupteur sur “ON”.

Après le téléchargement du code, l’OLED s’initialise et affiche la plage de valeurs “num : 1 ~ 100” et une estimation initiale de 50. Vous pouvez appuyer sur C pour temp+1 (maximum 100) ou sur E pour temp-1 (minimum 1) afin de changer votre valeur d’estimation sur l’OLED.

Appuyez sur D pour soumettre votre valeur, et temp sera comparé à la valeur cible aléatoire. Si temp>value, afficher « Trop haut ! » et assigner temp à max2 ; si temp<value, afficher « Trop bas ! » et l’assigner à min2. Si vous avez la chance que temp=value, vous verrez « Génial !!! » pendant 1 s.

Après cela, le jeu sera réinitialisé et une nouvelle valeur cible sera définie. Jouons une autre partie !

Img

⚠️ Les blocs de construction montrés dans le Résultat du test ne sont pas inclus dans ce kit produit.

Astuce : Si la carte ne répond pas, veuillez appuyer sur le bouton de réinitialisation à l’arrière de la carte micro:bit.

Img