|
EXERCICE 5 - JEU DE CARTES
Les files d'attente (Version Java) |
Le but de cet exercice est d'écrire un programme qui simule le
déroulement d'une partie du jeu de la bataille. Nous rappelons ici les règles. On
dispose d'un jeu de 32 cartes (4 couleurs et 8 puissances de carte). Le jeu est d'abord
mélangé pour ensuite être coupé en deux tas de 16 cartes. On en donne un
à chaque joueur. La partie peut enfin commencer. Chaque joueur montre la carte au sommet de
son tas. Le joueur qui a la carte de plus forte valeur ramasse sa carte et celle de son adversaire
et les met sous son tas. En cas d'égalité, les deux cartes sont placées sur un
tas d'attente avec, pour chaque joueur, une autre carte prise au sommet de son tas. Ensuite, la
partie reprend. Le joueur qui remportera la manche suivante remportera non seulement les deux
cartes en jeu mais également toutes celles qui se trouvent dans le tas d'attente.
Dans cet exercice, on représentera les tas par des files d'attentes
modélisées par des listes chaînées (cf. cours). Une carte sera
représentée par la classe suivante.
classe Carte:
int famille;
int puissance;
fin classe;
La famille est une valeur entre 0 et 3:
COEUR = 0, CARREAU = 1,
TREFLE = 2 et PIQUE = 3. La puissance est une valeur
entre 0 et 7: SEPT = 0,
HUIT = 1, NEUF = 2, DIX = 3,
VALET = 4, DAME = 5, ROI = 6
et AS = 7.
Question 1: Ecrire la classe Carte avec une méthode
qui affiche la valeur de la carte (on utilisera les codes ASCII 3, 4,
5 et 6 pour représenter les symboles
,
,
et
sous MS-DOS). Par
exemple, la dame de coeur sera affichée
D.
Question 2: Ecrire la classe Tas qui est une file d'attente
de cartes, et représente un tas de cartes. Ecrire les méthodes:
vide qui indique si le tas est vide,
mettre qui place une carte sous le tas,
retirer qui enlève la carte au sommet du tas,
afficher qui affiche le contenu du tas.
Question 3: Déclarer une classe Bataille qui
contiendra les fonctions du jeu proprement dit. Dans la méthode main,
déclarer un tableau de 32 cartes qui représente le jeu de cartes, et écrire
les méthodes:
creerJeu qui remplit le tableau avec les valeurs des cartes
d'un jeu classique de 32 cartes,
melangerJeu qui mélange les cartes du tableau,
distribuerCartes qui répartit les 32 cartes du tableau
en deux tas de 16 cartes chacun.
Question 4: Ecrire les méthodes:
deplacerCarte qui déplace une carte du sommet d'un tas
sous un autre tas,
deplacerTas qui déplace un tas sous un autre.
Question 5: Ecrire maintenant la méthode simuler qui
simule le déroulement d'une partie du jeu de la bataille. Il est conseillé
d'écrire aussi une méthode qui affiche le contenu des 3 tas du jeu et de l'appeler
pendant la simulation.
|
|