TP 7 Familles
Exercice: Jeu de cartes des 7 familles
Lien vers le notebook: CAPYTALE
Les cartes
On donne la declaration de la classe Sept_Familles
Question 1: créer (instancier) l’objet carte1 de la famille des Jongleurs, le Grand-père.
Question 2: Compléter la classe Sept_Familles avec la fonction get_Attributs. Cette fonction ne prend pas d’autre paramètre que self.
Celle-ci devra retourner un tuple constitué des 2 attributs de classe.
Exemple d’utilisation dans le programme:
Question 3: Consulter le Docstring de la classe:
Question 4: Définir les objets-cartes suivantes:
Puis tester la méthode de classe:
Ajouter les autres membres de l’une des familles (carte5, carte6,…). Une famille est constituée de Grand-père, Grand-mère, Père, Mère, Fils, Fille.
Question 5: Ajouter la méthode __repr__ qui permettra de décrire la carte:
Exemple de message attendu:
Testez votre fonction pour quelques unes des cartes.
Classe joueur
Le joueur est un objet qui possède, pour attributs, les cartes qu’il a en main.
Chaque joueur est une instance de la classe Joueur, et sera construit avec joueur1 = Joueur(carte1,...)
Difficulté à venir: On ne connait pas le nombre de cartes que le joueur peut avoir en main à l’instant t.
Python permet d’appeler une fonction avec un nombre inconnu d’arguments: il faut ajouter le paramètre *args dans la déclaration de la fonction. On parcourt alors les arguments de la manière suivante:
La fonction __init__ aura alors pour arguments self (qui est obligatoire), et *args. On y definit une liste vide, self.C, et on y ajoute des tuples constitués des attributs pour chacune des cartes du joueur. Cette fonction est donnée dans l’editeur, plus bas…
Question 1: Dans la classe Joueur: Ecrire une méthode de classe get_cartes qui retourne la liste self.C, afin de pouvoir accéder à la liste des cartes du joueur.
Question 2: Créer l’objet joueur1. Celui-ci devra posséder les cartes carte1 et carte2 définies plus haut: joueur1 = Joueur(carte1,carte2)
Tester alors la méthode : joueur1.get_cartes() pour afficher la liste.
Question 3: Créer une méthode de classe __repr__ pour afficher cette liste dans un message, comme par exemple:
Question 4: On souhaite maintenant avoir une interaction plus poussée avec le Joueur, selon les règles du jeu.
L’idée est de créer une méthode possede qui prend en paramètre un tupple (famille,membre_famille), et qui retourne un booleen selon la main du joueur, comme par exemple:
Question 5: Quelles fonctionnalités du jeu reste t-il à programmer pour avoir un jeu complet?
Question 4: On souhaite maintenant avoir une interaction plus poussée avec le Joueur, selon les règles du jeu.
L’idée est de créer une méthode possede qui prend en paramètre un tupple (famille,membre_famille), et qui retourne un booleen selon la main du joueur, comme par exemple:
Question 5: Quelles fonctionnalités du jeu reste t-il à programmer pour avoir un jeu complet?
Question 6: (mini projet) Programmer tout ou partie de ces fonctionnalités.
- Exemple 1: programmer une fonction
donne, de la classeJoueurqui retire la carte de la liste du joeur. On pourra utiliser la méthode de listeremove, qui supprime un élément X de la liste:
- Exemple 2: programmer une fonction
demandede la classeJoueurtelle que:
Lorsque le joueur a la carte, il la donne au joueur qui la lui demande. Elle est retirée de son jeu et s’ajoute au jeu de l’adversaire.
Liens
Correction de l’exercice sur le jeu des Sept_Familles: Lien
La suite en TP