Table of Contents

Devoir 1 - Microbit Memory Game

Informations générales

Date limite: 5 Avril, 23:55
Téléchargement du devoir: GitHub

Connaissances évaluées

Règles

  1. Le devoir doit contenir un fichier nommé Readme avec des explications concernant la manière choisie pour résoudre le devoir
  2. Le devoir doit être implémenté en Blocks. Toute autre implémentation conduira à l'annulation du devoir.(0 points)

Copiage

Le devoir est individuel. Toute tentative de copier entraînera 0p pour les devoirs. On utilisera un système automatisé pour détecter le copiage. Si on a des doutes, on va vous adresser des questions supplémentaires concernant le devoir.

Questions

Si vous avez des questions concernant le devoir, posez-les en publiant un issue sur le github https://github.com/UPB-FILS-SdE2/questions avec le format [memory game] <le titre de votre question>

NE PUBLIEZ PAS DE CODE SOURCE. Cela est considéré comme copiage et vous aller recevoir 0p pour le devoir.

Si vous voulez recevoir un e-mail lorsque des problèmes sont signalés ou lorsqu'il y a de nouveaux messages, accédez au site github repository et cliquez sur Watch.

Microbit Memory Game

Pour résoudre le devoir vous devez réaliser un programme en Blocks language pour simuler les comportements décrits.

Déroulement générale du jeu

L'utilisateur peut choisir entre des options en appuyant simultanément sur les boutons A et B quand sur la matrice LED s’affiche l’initial correspondant à une commande. On peut “traverser” entre les commandes en appuyant sur A pour l’option précédente ou B pour l’option suivante.

Les commandes supportés sont:

En fonction du niveau de difficulté choisi, le joueur doit mémoriser un nombre (2 ou 3) d’images qui s’affiche sur la matrice LED. Chaque image sera affichée pour 2 secondes. Après ça, l’utilisateur doit choisir les images qu’il a vu à partir d'une liste d'images, en respectant l'ordre d’apparition d’images. Pour chaque supposition correcte, le score du joueur va être incrémenté avec 1 point. Si le joueur choisit l’image incorrecte 2 fois, le jeu va arrêter et un message de “Game over” va être affiché. Pour gagner, l’utilisateur doit trouver un nombre de paires d’images spécifique pour la difficulté qu’il a choisi.

Les images affichées doivent être choisies aléatoirement parmi les éléments des listes d’images qui correspondent au niveau de difficulté choisi.

Commandes acceptées

Difficulty(D)

Cette commande permet à l'utilisateur de choisir la difficulté du jeu. Si on sélectionne cette commande 2 options doit être valables:

La difficulté par défaut est Easy.

Liste d'images pour Easy: coeur, diamant, smiley face, carré

Liste d'images pour Hard: coeur, diamant, smiley face, carré, triangle gauche, girafe

Start Game(S)

La commande qui déclenche l’affichage d’images. Chaque image doit rester sur la matrice LED pour 2 secondes. Après ça, le joueur peut choisir les images qu’il a vu. Si la sélection est correcte, une autre paire d’images sera affichée et le jeu continue.

Des cases quand la sélection est considérée incorrecte:

  • Si la première image choisi est incorrecte (donc l'utilisateur doit continuer à chercher la première images affichée)
  • Si la deuxième image choisi est incorrecte (donc l'utilisateur doit continuer à chercher la deuxième images affichée)
  • Si les images choisies sont correctes, mais l’ordre d’images n’est pas correct

Après chaque choix incorrect, le message Incorrect doit être affiché sur la matrice. Si le joueur choisit l’image incorrecte 2 fois, le jeu sera arrêté et un message de “Game over” sera affiché.

Si le joueur identifie toutes les paires nécessaires pour gagner, le message Congratulations! sera affiché.

Bonus

A la fin du jeu, après le message Congratulations!, une image construite par vous est affichée. Après ça, dans la console, vous devez afficher un graphique avec le nombre d’apparition de chaque image(les images mémorisées) dans le jeu.

Hint: Plot bar graph function

Exit(X)

Le message Bye est affiché et le jeu s'arrête.

Envoyer le devoir

Après la résolution du devoir en Blocks language, vous devez convertir le code en Python et chargé le devoir sur github.