Installazione al Festival della Scienza di Genova 2021. Crediti: Laura Leonardi

Le CodyMaze Astrophysique est une variante du CodyMaze  (Code-Labyrinthe) – conçu par Alessandro Bogliolo dans le cadre du CodeMOOC – developpée par l’Institut National d’Astrophysique en collaboration avec l’Université de Urbino et Digit srl. C’est un labyrinthe virtuel dans le monde réel, qui propose défis de codage et quiz d’astronomie, astrophysique et exploration spatiale. Le CodyMaze aide à développer la pensée computationale et la capacité de problem solving et, au même temps, permet aux étudiants de reviser le programme de sciences, tout en s’amusant. Les énigmes de codage et les quiz sont destinés aux élèves du premier cycle de l’école secondaire, et à un public adulte. Même les plus jeunes enfants s’amusent dans le labyrinthe virtuel, mais nous suggérons de les accompagner dans l’utilisation du téléphone céllulaire et dans l’execution des instructions de programmation.

Dans le jeu, vous vous déplacez sur un échiquier 5 x 5 dont les cases contiennent un code QR. Apparemment l’échiquier est libre, mais, grace aux codes QR, il présente des labyrinthes toujours différents, qui sont proposés au jouer par le bot Telegram @codymazebot. Le joueur se déplace physiquement sur l’échiquieur en suivant les instructions du bot et scanne le code QR sur lequel il arrive à chaque étappe pour vérifier d’avoir effectué correctement la séquence d’instructions. Durant les différentes étappes du jeu, on propose des séquences d’instructions d’une complexité croissante, qui introduisent tous les concepts de base de la programmation. Pour reçevoir la séquence d’instructions qui porte au QR code suivant, il faut répondre correctement à un quiz d’astronomie, dont le thème dépend de la boite du labyrinthe. Pour la version astrophysique du jeu, on a préparé 250 quiz d’astronomie à choix multiple, donc si on veut parcourir la labyrinthe plusieurs fois, c’est peu probable que les défis proposés soient toujours les mêmes. À la fin du jeu, le bot Telegram délivre un certificat nominal d’achévement qui affiche la liste des constructions de programmation expérimentés pendant le jeu.

Terrain de jeu 

On peut jouer avec le CodyMaze sur une grille carrée, 5×5, sur laquelle on a arrangé  25 codes QR. Les codes QR sont arrangés sur le pavement, à peu près 50 centimètres de distance l’un de l’autre. Dans cette façon, le joueur peut se déplacer avec son propre corps à l’intérieur de l’échiquieur, sans utiliser les pions. Si l’échiquieur était effectivement dessiné au sol, le code QR occuperait le centre d’une case, mais la presence des codes QR, qui  identifient le centre des cases, iln’est pas important de tracer les bords. Donc l’echiquieur peut ne pas etre dessiné. Les colonnes et les lignes de l’échiquieur sont identifiées par des lettres et des chiffres, à partir du coin supérieur gauche. À chaque code QR on assigne une position identifiée par une lettre et un nombre. En outre, l’échiquieur est orienté conventionellement de telle sorte que le coté supérieur correspond au nord e, par conséquent, le coté inférieur au sud, le gauche à l’ouest et le droite à l’est. Si le lieu le permet, il est conseillé d’orienter effectivement l’échiquieur de manière cohérente avec les points cardinaux.

Vous pouvez télécharger les 25 codes QR code imprimables du CodyMaze Astrophysique aux liens suivants:

Pour en faciliter la disposition et l’utilisation, chaque code QR affiche l’indication de la position et des points cardinaux. Cinq codes QR ont des étoiles à la presence de lesquelles est conditionnée l’execution de certaines instructions.

Objectif du jeu

Sortir du labyrinthe virtuel en suivant les instructions fournies par @codymazebot.

Joueurs

Le jeu peut etre joué par un, ou plusieurs joueurs. La limite au nombre de joueurs est donnée seulement par les dimensions de l’échiquieur sur lequel les joueurs doivent pouvoir se déplacer indipéndamment, en exécutant chacun ses propres instructions fournies par @codymazebot.

Conditions

Pour jouer il faut:

  • Smartphone ou tablette équippée de:
  • Les dispositifs utilisés doivent être egaux au nombre de joueurs qui jouent simultanément. À la fin du jeu, le même smartphone peut être utilisé par un autre joueur, auquel le bot présentera un parcours différent.

Difficultés

  • Le joueur ne connait pas le parcours, mail il reçoit les instructions par le bot Telegram et les doit interpréter et exécuter correctement.
  • Les séquences d’instructions fournies par le bot sont de difficulté croissante, soit pour les phrases d’introdution, soit pour la longueur.

Game Play

Le joueur interagit avec le jeu en effectuant les actions suivantes:

  • Scanner le code QR associé à la boîte du joueur (cadrer avec un lecteur de code-barre le code QR qu’on veut scanner, selectionner Telegram messenger comme application pour ouvrir le lien contenu dans le code QR, appuyer sur la touche Demarrer, qui apparait en bas dans l’interface du bot Telegram)
  • Quiz d’astronomie (répondre correctement au quiz à choix multiples proposé par le bot)
  • Reglage de la direction (selectionner un des quatre touche Nord, Est, Sud, ou Ouest lorsque demandé par le bot)
  • Lecture et interpretation des instructions fournies par le bot (la syntaxe est décrite au point game design)
  • Exécution des instructions fournies par le bot (les instructions s’executent physiquement en se deplaçant sur l’èchiquieur au sol)

Game Design (les règles)

Dèbut du jeu

  1. Vous pouvez commencer une nouvelle partie seulement après avoir conclu les parties éventuellement en cours.
  2. Si @codymazebot n’est pas prêt à commencer une nouvelle partie parce que la précédente a eté interrompue, vouz pouvez le remettre à l’état initial en appuyant sur la touche /reset.
  3. Dans ces conditions, le jeu est lancé lorsqu’un code QR de la grille est scanné.
  4. Pour commencer le jeu, le joueur doit choisir une case extérieure (une des 16 qui composent le bord) et scanner le code QR corréspondant pour notifier le choix au bot.
  5. Le bot indique au joueur la direction de marche et demande une confirmation. C’est important de respecter cette indication: chaque instruction succéssive devra être executée en partant de la position choisie, et de la direction indiquée par le bot.
  6. Le bot propose un quiz à choix multiples à thème astronomique. Chaque boîte du labyrinthe est characterizée par un thème différent. Pour proceder dans le labyrinthe, il faut répondre correctement.

Déplacement

  1. À chaque pas, le bot guide le joueur avec un code précédé par cette phrase “Suivez ces indications pour résoudre le prochain pas et scannez le code QR à l’arrivée“. Le code suivit la syntaxe décrite ci-dessous dans la section Syntaxe.
  2. Le joueur doit se déplacer sur l’échiquieur en executant le code comme s’il était un robot, en faisant attention à la position et à la direction de départ.
  3. Une fois terminé l’execution, le joueur scanne le code QR pour notifier au bot la position qu’il a atteinte.
  4. Le bot répond en demandant “Dans quelle direction tu regarde?” et en présentant les 4 touches pour le choix de la direction.
  5. Le joueur indique la direction (sans se tourner par rapport à la position atteinte à la fin de l’éxecution du code)
  6. Si l’exécution est correcte, le bot dit “Très bien! Tu as trouvé le bon endroit”, et propose le code du pas suivant.
  7. Attention: il est possible qu’ un mouvement n’entraine aucun déplacement. Dans ce cas, l’exécution correcte prevoi qu’on  scanne le code QR à nouveau, sur le case où le joueur se trouve.

Mouvement mauvais

  1. Un mouvement est mauvais un faux code QR est scanné ou  une mauvaise direction est définie par rapport à celle prévue par le code fourni par le bot.
  2. Face à un faux mouvement, le bot demande au joueur de retourner au point de départ du mouvement, dont il donne les coordonnées et la direction. La réponse du bot est: “Ops! Tu t’es trompé! Retourne à la position … en regardant vers … et scanne le code à nouveau”.
  3. Le joueur doit tourner dans la position indiquée par le bot, scanner le code QR, regarder dans la direction indiquée par le bot et la selectionner pour confermer lorsque demandé.
  4. À ce point, le bot fournit à nouveau les instructions pour répeter le mouvement.

Achévement du labyrinthe

  1. À la fin de tous les mouvement prevus, le bot envoit le message suivant: “Félicitations! Tu as achévé le CodyMaze!
  2. Le bot demande donc de taper le nom que vous voulez sur le certificat d’achévement. Le message de demande est le suivant: “Écrivez le nom et le prénom à afficher sur le certificat d’achévement:
  3. Le joueur doit taper son propre nom et prenom (ou un nom quelconque, comme par example le nom de la classe, ou une liste de noms dans la cas où le jeu a été joué en équipe)
  4. Le bot demande: “Confirmez que le nom envoyè est…?” pour permettre de corriger les erreurs.
  5. En répondant Oui on obtient le certificat nominal d’achèvement. Outre le nom indiqué par le joueur, le certificat contient un identifiant unique qui en futur pourra etre utilisé pour vérifier l’authenticité du certificat. Le certificat peut être téléchargé, enregistré et partagé avec fierté!
  6. Quand le bot envoit le message “Merci pour avoir joué avec CodyMaze!”, il est prêt à jouer une nouvelle partie.

Syntaxe

Instructions élémentaires. Le bot utilise les 3 instructions élémentaires de CodyRoby, représentées par leurs initiales en petits charactères:

  • a = vas-y, à effectuer en se déplaçant  d’un code QR au suivant le long de la direction de citculation
  • s = tourne à gauche, à effectuer en torunant de 90 degrés dans le sens anti-horaire, sans changer de case
  • d = tourne à droite, à effectuer en tournant de 90 degrés dans le sens horaire sans changer de case

Répétitions. Le bot demande de répéter plusieurs fois une instruction ou une séquence d’instructions, en indiquant le nombre de répétitions suivi par le code à répéter entre parenthèses:

  • n{codice} = code répété n fois
  • 3{a} = aaa
  • 2{as} = asas
  • s2{a} = saa

Constructions imbriquées. Les répétitions, commes les autres constructions décrites ci-après, peuvent aussi être imbriquées. En d’autres termes, le code à répéter peut contenir des répétitions ou d’autres constructions, comme dans ces examples:

  • 2{2{a}} = 2{aa} = aaaa
  • 3{2{a}s} = 3{aas} = aasaasaas

Conditions. Pour exprimer les conditions auxquelles est subordonnée l’execution de certaines instructions, le bot utilise le “si”, en enfermant la condition entre parenthèses et les instructions à executer dans une façon conditionné entre parenthèses:

  • si(condition){code} = executez le code seulement si la condition se vérifie
  • si(condition){code1}autrement{code2} = executez le code1 si a condition se vérifie, autrement, executez le code2

Les conditions utilisées par le bot sont les suivantes:

  • route devant ou il y a une route = vérifiée si dans le sens de marche il y a au moins une case à cocher 
  • route à droite = vérifiée si par rapport à la position et au sens de marche du joueur il y a au moins une case à droite
  • route à gauche = verifiée si, par rapport à la position et au sens de marche du joueur il y a au moins une case à gauche 
  • étoile = vérifiée si dans la case dans laquelle le joueur se trouve, autour le code QR, il y a des étoiles
  • pas d’étoile = vérifiée si dans la case où le jouer se trouve, autour du code QR, il n’y a pas d’étoiles

Répétitions conditionnées. Le bot utilise le terme “jusque” pour indiquer que une ou plusieures instructions doivent être répétées aussi longtemps qu’une condition dure. La condition est exprimée entre parenthèses, le code à executer entre parenthèses:

  • jusque(condition){code} = executez le codice aussi longtemps que la condition se vérifie.

Attention: dans les répétitions et dans les répétitions conditionnées, il faut executer tout le code intérieur à chaque répétition, puis il faut vérifier à nouveau la condition de répétition (condition explicite ou nombre de répétitions) pour decider si on veut l’executer à nouveau.

Conseil. Pour illustrer la syntaxe aux participants, nous conseillons d’effectuer un’exécution collective du jeu, en declarant et commentant ensemble les séquences d’instructions que le bot assigne à chaque pas. En alternative, on peut créer des séquences d’instructions de preuve pour simuler l’exécution.

Crédits

CodyMaze est un projet d’Alessandro Bogliolo, développé par Brendan Paolini, Lorenz Cuno Klopfenstein et Saverio Delpriori, du Course de Diplôme en Informatique Appliée de l’Universitè de Urbino. La version astrophysiquea été développée en collaboration avec le groupe de travail Play.coding d’INAF coordonné par Maura Sandri.

Guarda il video su Media Inaf Tv: