JeuDeCartes.py
Définissez une classe JeuDeCartes() permettant d'instancier des objets
« jeu de cartes » dont le comportement soit similaire à celui d'un vrai jeu de
cartes. La classe devra comporter au moins les quatre méthodes suivantes :
●
constructeur : création et remplissage d'une liste de 52 éléments, qui
sont eux-mêmes des tuples de 2 éléments contenant les
caractéristiques de chacune des 52 cartes. Pour chacune d'elles, il faut
en effet mémoriser séparément un nombre entier indiquant la valeur
(2, 3, 4, ..., 11, 12, 13, 14, les 4 dernières valeurs étant celles des
valet, dame, roi et as), et un autre nombre entier pour indiquer la
couleur de la carte (c'est-à-dire 3, 2, 1, 0 pour Coeur, Carreau, Trèfle,
Pique).
Dans une telle liste, l'élément (11, 2) désigne donc le valet de Trèfle, et
la liste terminée doit être du type : [(2,0),(3,0),...,(5,2),
(6,2), ...,(13,3),(14,3)]
Il n'est pas question d'implémenter le jeu de cartes en hard-coding !
Vous utiliserez pour cela les boucles et les alternatives.
●
nom_carte() : cette méthode renvoie sous la forme d'une chaîne
l'identité d'une carte quelconque, dont on lui a fourni le tuple
descripteur en argument.
P. ex. : print jeu.nom_carte((14,3)) => As de Pique
●
battre() : comme chacun sait, battre les cartes consiste à les
mélanger, Cette méthode sert donc à mélanger les éléments de la liste
contenant les cartes, quel qu'en soit le nombre.
●
tirer() : lorsque cette méthode est invoquée, une carte est retirée du
jeu. Le tuple contenant sa valeur et sa couleur est renvoyé au
programme appelant. On retire toujours la première carte de la liste. Si
cette méthode est invoquée alors qu'il ne reste plus aucune carte dans
la liste, il faut alors renvoyer l'objet spécial None au programme
appelant.
Exemple d'utilisation de la classe
jeu = JeuDeCarte() # Création du jeu de cartes
jeu.battre() # mélange des cartes
for n in range(52) : # Tirage des 52 cartes
carte = jeu.tirer()
if carte == None : # Il ne reste plus aucune carte
print 'Terminé!'
else :
# Affichage de la valeur et de la couleur de la carte
print jeu.nom_carte(carte)
Complément de l'exercice précédent
1. Définir deux joueurs A et B.
2. Instancier deux jeux de cartes (un pour chaque joueur) et les
mélanger.
3. Ensuite, à l'aide d'une boucle, tirer 52 fois une carte de chacun des
deux jeux et comparer leurs valeurs.
1. Si c'est la première des deux qui a la valeur la plus élevée, on
ajoute un point au joueur A.
2. Si la situation contraire se présente, on ajoute un point au joueur B.
3. Si les deux valeurs sont égales, on passe au tirage suivant. Celui qui
remportera le duel suivant remportera un point en plus.
P. ex. : Si le joueur A et joueur B tirent la même carte, on passe au
tirage suivant. Si c'est le joueur A qui remporte le duel, celui-ci
remporte 2 points à la place d'un et le joueur B aucun !
4. Au terme de la boucle, comparer les comptes de A et de B pour
déterminer le gagnant
Partager