Team Chooser

Introduction:

Dans ce projet, tu vas apprendre a créer 2 équipe aléatoires parmis une liste de joueurs.

Ressources en ligne

Ce projet utilises Python 3. Nous recommendons l’utilisation de trinket pour écrire du Pyton en ligne. Ce projet contiens les Trinkets suivants:

  • New (blank) Python Trinket – jumpto.cc/python-new

Il y a également un trinket contenant le projet terminé:

  • ‘Team Chooser’ Finished – trinket.io/python/a699c44ce6

Ressources hors-ligne

Ce projet peut être complété hors-ligne si souhaiter. 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 a accès à une copie de ces ressources. Cette section comporte les fichiers suivants :

  • team/team.py

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

  • team-finished/team.py

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

Objectifs pédagogiques

  • Listes;
  • Chargé des données d’un fichier.

Ce projet couvre des élements des parcours suivants du Raspberry Pi Digital Making Curriculum

  • Combiner des structures de programmation afin de résoudre des problèmes.

Challenges

  • “Ajoute plus de joueurs” - ajoute des éléments players a une liste;
  • “Choisir pour l’équipe B” - Créer une nouvelle équipe teamB et y ajouter des joueurs aléatoire;
  • “Noms d’équipe aléatoire” - Créer et utiliser une nouvelle liste teamNames et assigner des noms aléatoires aux équipes;
  • “Stocké les noms d’équipe” - Stocké les noms d’équipe dans un fichier, et les importer dans une variable teamNames;
  • “Plus d’équipe” - Séparer les joueurs dans 3 équipes au lieux de 2.

Joueurs

Commençons par créer notre liste de joueurs.

  • Ouvre un Trinket Python vide: jumpto.cc/python-new.
  • Tu peux utiliser une variable pour enregistrer une liste de joueurs. La liste doit etre déclarer entre crochets [ ], avec une virgule entre chaque liste.

    Commence par jouter une liste de joueurs a ton programme.

  • Ajoute ce code pour afficher ta variable players:

  • Tu peux recupérer un joueur dans la liste en ajoutant sa position dans les crochets après le nom de la variable.

    Le premier objet (ou joueur) dans la liste est à la position 0. C’est différent dans Scratch, qui commence à la position 1.


Défi: Ajoute plus de joueurs

Peut-tu ajouter plus de joueurs à ta liste? Tu peux ajouter autant de joueurs que tu souhaites, mais assure toi juste qu’il y a toujours un nombre pair joueurs.

Tu peux aussi changer le nom des 2 premiers joueurs si tu veux.

Peut-tu ajouter un code pour afficher un seul de tes nouveaux joueurs ?


Joueurs aléatoires

Il est temps de choisir nos joueurs aléatoires!

  • Pour récuperer un joueur aléatoire de ta liste players, en premier tu dois importer la function choice du module random.

  • Pour choisir un joueur aléatoire, tu peux maintenant utiliser choice. (tu peux aussi supprimer le code pour afficher des joueurs individuellement).

  • Test ton code choice plusieurs fois et tu devrais voir un joueurs différent a chaque fois.
  • Tu peux aussi créer une nouvele variable playerA, et l’utiliser pour enregistrer ton joueur aléatoire.

  • Tu vas avoir besoin d’une nouvelle liste pour enregistrer tous les joueurs de l’équipe A. Pour commencer, la liste devras etre vide.

  • Tu peux maintenant ajouter les joueurs choisi aléatoirement dans la liste teamA. Pour faire cela, tu peux utiliser la function teamA.append (append signifie ajouter à la fin).

  • Maintenant que tes joueurs on été choisis, tu peux les enlever de ta liste de joueurs players.

  • Test ce code en ajoutant une commande print, pour afficher les joueurs players qu’il reste a choisir.

    Dans l’exemple ci-dessus, Hermione a été choisi pour teamA, et a donc été enlevé de la liste des joueurs players.


Défi: Choisir pour l’équipe B

Peut-tu ajouter le code pour choisir un joueur aléatoirement pour l’équipe B? tu auras besoin de:

  • Créer une nouvelle liste teamB.
  • Choisir aléatoirement un joueur pour l’équipe B (tu peux l’appeler playerB)
  • Utilise la fonction append pour choisir un joueur pour ta liste teamB.
  • Utilise la fonction remove pour supprimer le joueur choisi de ta liste de joueurs players.

Le code dont tu as besoin pour ton équipe teamB seras presque identique au code que tu as déjà écrit pour l’équipe teamA!


Choisir plein de joueurs

Maintenant tu dois etre sur que chaque joueurs a été choisi pour une équipe.

  • Surligne ton code pour choisir les joueurs de l’équipe A et de l’équipe B et appuie sur la touche tab pour indenter ton code.

  • Ajouter une boucle while pour continuer a choisir des joueurs jusqu’a ce que la longueur de la liste players soit égale a zéro.

  • Lance ton code pour le tester. Tu devrais voir les joueurs remplir les listes de l’équipe A et B jusqu’a ce qu’il n’y ai plus de joueurs.

  • Ajoute du code pour afficher ta liste teamA après ta boucle while (vérifie que ce ne soit pas indenté)

    Cela veux dire que ton équipe teamA sera affiché une seule fois, après que les joueurs aient été choisis.

  • Tu peux faire la même chose pour teamB, et tu peux également supprimer les autres commande print, elles n’étaient utile que pour tester ton code.

    Voici ce a quoi ton code devrais ressembler

  • Test ton code une fois encore et tu devrais juste voir ta liste de joueurs ainsi et que tes équipes finales.


Fichiers

Tu peux utiliser un fichier pour enregistrer ta liste de joueurs

  • Clique sur l’icone + et crée un nouveau fichier que tu appelleras players.txt.

  • Ajoute des joueurs a ton nouveua fichier. Vérifie qu’il n’y ai pas d’espace après ton dernier joueur.

  • Change ta liste players pour qu’elle soit vide.

  • Ouvre ton fichier players.txt (le r veux dire lecture-seule).

  • Lis la liste depuis ton fichier et ajoutes la a ta liste players. (le code splitlines signifie que chaque nouvelle ligne de ton fichier représente un joueur dans ta liste players)

  • Si ton test ton code, cela devrais fonctionner exactement comme avant. Sauf que, maintenant, c’est beaucoup plus facile d’ajouter des joueurs a ton fichier players.txt.

Joueurs impair

Essayons d’améliorer notre programme pour qu’il fonctionne avec une listes de joueurs impair.

  • Ajoute un autre nom a ta liste players.txt, pour que tu ais une liste impair de joueurs.

  • Si tu test ton code, tu devrais voir une erreur s’afficher.

  • Cette erreur s’affiche parce que ton programme continue de choisir des joueurs aléatoire de l’équipe A et B. Sauf que maintenant, si il y a un nombre impair de joueurs alors après avoir choisi un joueur pour l’équipe A, il n’y a plus de joueurs disponible pour léquipe B.

    Pour corriger ce probléme, tu peux dire à ton programme de stopper (ou break) ta boucle while si ta liste de joueurs players est vide.

  • Si tu test ton code encore une fois, tu devrais avoir que cela fonctionne avec un nombre impair de joueurs.


Défi: Nom d’équipe aléatoire

Peut tu donner un nom aléatoire a chaque équipe ?

Tu peux créer une liste teamNames qui contiendra les noms d’équipe a choisir.

Tu peux ensuite choisir (et afficher) un nom aléatoire pour chaque équipe.

Défi: Stock les noms d’équipe

Peut tu enregistrer la liste de nom d’équipe dans un fichier ?


Défi: Encore plus d’équipe

Peut tu améliorer ton programme pour séparer tes joueurs en 3 équipes au lieu de 2?

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