 |
EXERCICE 5 - JEU DE CARTES
Les files d'attente (Version C) |
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'attente
modélisées par des listes chaînées (cf. cours). Une carte aura la
structure suivante.
structure CARTE:
FAMILLE famille;
PUISSANCE puissance;
fin structure;
où FAMILLE et PUISSANCE sont des types
énumérés. FAMILLE contient les valeurs COEUR,
CARREAU, TREFLE et PIQUE. PUISSANCE contient
les valeurs SEPT, HUIT, NEUF, DIX,
VALET, DAME, ROI et AS.
Question 1: Déclarer la structure TAS qui est une
file d'attente de cartes qui représente un tas de cartes. Ecrire les fonctions:
Question 2: Déclarer un tableau de 32 cartes qui représente
le jeu de cartes et écrire les fonctions:
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 3: Ecrire les fonctions:
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 4: Ecrire maintenant la fonction simulerBataille
qui simule le déroulement d'une partie du jeu de la bataille. Il est conseillé
d'écrire aussi une fonction qui affiche le contenu des 3 tas du jeu et de l'appeler pendant
la simulation.
|
|