Le déconfinement nous permet progressivement un retour à la normale. Bonne reprise à tous.

Robo-Atout

Introduction

Dans ce projet tu vas lire des données d’un fichier pour créer des cartes de jeu atout avec un thème robotique. Ensuite tu peux jouer “Robot-Atout” avec un ami.

Notes pour le leader du club

Introduction:

Dans ce projet les apprentis-codeurs vont lire des données d’un fichier vers un dictionaire, afin de créer des cartes de jeu “robot-atout”. Les cartes peuvent par la suite être utilisées pour jouer à Robot-Atout avec un ami.

Ressources en ligne

Ce projet utilise Python 3. Nous vous conseillons d’utiliser trinket pour écrire du Python en ligne. Ce projet contient les Trinkets suivants :

Il y a également un trinket qui contient un exemple de solution aux défis :

Ressources hors-ligne

Ce projet pourrait être complété hors-ligne si préférable. Vous pouvez accéder aux ressources du projet en cliquant sur ‘Matériaux du Projet’. Ce lien contient une section ‘Ressources du projet’, y compris vers des ressources dont les enfants auraient besoin pour compléter le projet hors-ligne. Vérifiez que chaque enfant ait accès à une copie de ces ressources. Cette section comporte les fichiers suivants :

  • robotrumps/robotrumps.py
  • robotrumps/cards.txt
  • Plusieurs images .gif de robots

Vous pouvez aussi trouver une version finalisée des défis de ce projet dans la section ‘Ressources du volontaire’, qui contient :

  • robotrumps-finished/robotrumps.py
  • robotrumps-finished/cards.txt
  • Plusieurs images .gif de robots

(Toutes les ressources ci-dessus sont également téléchargeables comme des fichiers .zip pour le projet et les volontaires.)

Objectifs pédagogiques

  • Consolidation: structures de données, lire à partir d’un fichier et “turtle graphics” (interface graphique de la “tortue”);
  • Utiliser des images avec “turtle graphics”;
  • Partager des projets trinket.

Ce projet couvre des élements des parcours suivants du Programme de Créativité Numérique Raspberry Pi :

Défis

  • Ajoute d’autres robots - En éditant un fichier .txt et travaillant avec des images ;
  • Ajoute plus de stats concernant les robots - manipulation des données ;
  • Joue à Robot-Atout avec un ami.

Foire à questions

  • Python hors-ligne ne marche pas avec des images .png. .gif images ont été fournies pour une utilisation hors-ligne.
  • A noter que ce projet utilise l’entrée de texte et les images ‘turtle’, vous pouvez ajuster l’espace donnée à chacune dans trinket.
  • Tu devrais cliquer dans la fenêtre texte de trinket avant de commencer à taper.
  • Les enfants peuvent utiliser l’option ‘Share’ dans trinket pour accèder à un lien vers leur projet. S’ils ont accès à un adresse mail ils peuvent envoyer le lien à un ami par mail, sinon ils pourraient tout simplement le lire à haute voix, le noter sur une feuille de papier ou l’enregistrer dans un fichier texte sur le réseau local.

Lire des données des robots à partir d’un fichier

Il est très souvent utile de pouvoir lire de l’information à partir d’un fichier. Tu peux ainsi changer les données dans le fichier sans avoir besoin de changer ton code.

  • Ouvre ce trinket : jumpto.cc/trumps-go.
  • Ton projet de démarrage comporte un fichier cards.txt qui contient les données à propos des robots.

    Clique sur cards.txt pour voir les données :

    Chaque ligne contient des informations concernant un robot. Chaque élément d’information est séparé par une virgule.

    Chaque ligne contient les informations suivantes :

    nom, niveau d’intelligence, autonomie de batterie, nom de fichier image

  • Lisons les données à partir du fichier pour pouvoir s’en servir. La première étape est d’ouvrir le fichier cards.txt dans ton script :

  • Maintenant tu peux lire les donnnées à partir du fichier :

  • Tu devrais toujours fermer le fichier quand tu as fini de le traiter :

  • Ça nous transforme le fichier en une seule chaîne de caractères que tu dois par la suite décomposer dans des éléments individuels d’information.

    D’abord, tu peux découper le fichier dans une liste de lignes :

    Regarde attentivement la sortie. IL y a trois éléments dans la liste, chacun est une ligne du fichier.

  • Maintenant tu peux traiter en boucle les lignes, l’une après l’autre.

  • Au lieu d’afficher les lignes, stocke les dans des variables.

  • Tu veux utiliser ces informations plus tard pour chercher les valeurs d’un robot en particulier. Utiliisons le nom du robot comme clé de dictionnaire.

    Ajoute un dictionaire robots :

  • Maintenant ajoutons un article au dictionnaire pour chaque robot.

    Le nom du robot est la clé et la valeur est une liste de données concernant ce robot.

    Ajouter le code en surbrillance :

    Tu peux retirer print robots dès que tu as testé ton script.


Afficher les données

Maintenant tu peux afficher les données de robot de façon plus intéressante.

Affichons les cartes de jeu “Robot-Atout” avec une image et les données concernant son intelligence et son utilité.

Quand tu auras complété cette étape, ça sera possible d’afficehr les robots comme suit :

  • Demande à l’utilisatrice quel robot elle aimerait voir :

  • Si le robot est dans le dictionnaire, cherchons ses données :

    Teste ton code en entrant le nom d’un robot.

  • Si le robot n’existe pas, affiche un message d’erreur :

    Teste ton code en entrant le nom d’un robot qui n’est pas dans le dictionnaire.

  • Maintenant tu vas utiliser la “Tortue” (turtle) Python pour afficher les données des robots.

    Importe la bibliothèque Turtle en haut de ton script et mettre en place l’écran et la tortue :

  • Maintenant ajoute le code pour que la tortue affiche le nom du robot :

  • Essaye de changer la variable style jusqu’à ce que tu sois satisfait du texte.

    Au lieu de la police Arial tu pourrais essayer : Courier, Times ou Verdana.

    Change 14 pour un autre valeur afin de changer la taille de police.

    Tu peux changer bold en normal ou italic.

  • Stocke la liste de statistiques pour le robot dans une variable au lieu de les afficher à l’écran :

  • Tu peux désormais accéder aux statistiques des robots comme des éléments dans une liste :
    • stats[0] est l’intelligence
    • stats[1] est l’autonomie
    • stats[2] est le nom de l’image

    Ajoute du code pour afficher les stats d’intelligence et d’autonomie :

  • Uh-oh ! Les stats sont empilées les unes sur les autres. Tu auras besoin d’ajouter du code pour bouger la tortue :

    https://www.kubii.fr/img/cms/robotrumps-stats-3.png

  • Et enfin, ajoutons l’image du robot afin de compléter l’affichage.

    Tu as besoin d’ajouter une ligne quand tu lis les données à partir de cards.txt :

  • Et ajoute le code pour positionner et tamponner l’image :

  • Test ton code en entrant un robot, puis un autre et tu verras qu’ils s’affichent les uns sur les autres !

    Tu devrais vider l’écran avec d’afficher un robot :


Défi : Ajoute d’autres robots

Saurais-tu ajouter les informations concernant d’autres robots au fichier cards.txt ?

Clique sur le bouton des images pour voir les images des robots que tu peux utiliser.

C’est toi qui décide le niveau d’autonomie et d’intelligence de chaque robot.


Défi : Ajoute plus de stats concernant les robots

Penses-tu à d’autres informations qui pourraient être ajoutées aux robots ? Tu pourrais ajouter ‘rapidité’ ou ‘utilité’ ou inventer tes propres idées.

Tu auras besoin d’ :

  • ajouter les données au fichier pour chaque nouvelle catégorie
  • ajouter la nouvelle catégorie au code qui lit les données
  • écrire une nouvelle catégorie quand tu affiches une carte de jeu Robot-Atout

Tu pourrais même ajouter une couleur et afficher les statistiques pour chaque robot avec sa couleur individuelle.

Indice : Utilise color('red') pour changer le couleur de texte de la tortue en rouge avant d’écrire à l’écran.

Exemple :


Afficher un robot de façon aléatoire

Ajoutons du code pour qu’un robot selectionné aléatoirement s’affiche quand tu tapes Random au lieu du nom d’un robot.

  • D’abord tu auras besoin d’importer la fonction de choix du module “random” :

  • Tu peux utiliser choice pour choisir un nom de robot aléatoire de la liste des clés du dictionnaire robot.


Défi : Joue à Robot-Atout avec un ami

Partage ton projet avec un amis et jouez à Robot-Atout. Les deux joueurs devraient utiliser le même projet pour que ça soit juste pour tout le monde ! Joueur 1 demande un robot aléatoire, puis il choisit une catégorie. Ensuite Joueur 2 demande un robot aléatoire et vous vérifiez qui de vous deux a le score le plus élèvé pour la catégorie choisie, puis vous inversez les rôles.

Le jeu se déroule au mieux si vous jouez tous les deux avec le même jeu de cartes. Partage le lien vers ton projet Trinket avec un ami pour pouvoir utiliser le même jeu de cartes.

Produit ajouté avec succès à la comparaison des produits