M1202 - TP Séance 4
Durée : 2h00
Objectifs
- Programmer une simulation de tournoi de sport.
- Manipuler les tableaux en Java.
Au menu
- Consignes
- Création des équipes
- Déroulement d'un match
- Déroulement d'un tournoi
Lisez attentivement cet énoncé de TP/TD
en suivant les instructions.
En cas d'interrogation,
faites appel à moi,
que ce soit pour en savoir plus sur un des points abordés pendant le TP, ou
pour savoir comment effectuer une des tâches demandées (numérotées pour pouvoir
y faire référence simplement).
Surtout
ne restez pas bloqué(e) sur une des questions.
Entre parenthèses, à côté des titres de sous-sections, est indiqué
le temps que vous avez dû passer à effectuer les étapes précédentes.
Au cours de ce TP, nous allons simuler un championnat de foot.
Nous allons tout d'abord créer la liste des équipes, leur niveau,
leur nombre de points, et afficher la liste des équipes et le nombre de points
de chacune.
question(); ?>Créez un dossier dédié à ce TP4
(de la même manière que vous en aviez créé un dédié au TP1, au TP2 et au TP3).
question(); ?>Enregistrez-y ce fichier
TP4.java.
question(); ?>Lisez le code de l'algorithme main
du fichier : un tableau
equipe de chaînes de caractères qui contient le nom
de chaque équipe, et un tableau
niveau qui contient un nombre indiquant si
c'est une bonne équipe (si le nombre est élevé) ou une mauvaise (si le nombre est
petit). Par exemple, le Paris St-Germain est une bonne équipe, de niveau 5.
Pour simuler le championnat de foot, il va falloir commencer
par créer le tableau des scores de chaque équipe, qui gagne trois points
pour une victoire, un point pour un match nul et aucun point pour une défaite.
Les scores vont donc être stockés dans un tableau d'entiers :
question(); ?>dans l'algorithme main,
créez ce tableau d'entiers de 20 cases,
appelez-le score, et initialisez tous les scores à 0 point.
Après la fin de l'algorithme
main, créez un algorithme
question(); ?>afficheEquipes
qui prend en entrée un tableau de chaînes de caractères
equipe et affiche le nom
de chaque équipe à l'écran, à tour de rôle. Cet algorithme
afficheEquipes ne renvoie rien.
Pour tester l'algorithme
afficheEquipes,
question(); ?>appelez-le en
mettant comme variable d'entrée la variable equipe.
De la même manière que pour l'algorithme
afficheEquipes,
question(); ?>créez un algorithme
affichePoints
qui prend en entrée un tableau de chaînes de caractères
tab, ainsi qu'un
tableau d'entiers
score, et affiche, pour chaque case de
tab :
- le contenu de cette case
- ainsi que le contenu de la case du tableau "score" associée (c'est-à-dire
celle qui a le même numéro)
Pour tester l'algorithme
affichePoints, appelez-le en
mettant comme variables d'entrée la variable
equipe
et la variable
score.
Par exemple, la première ligne affichée en choisissant en premier paramètre d'entrée
le fichier de noms d'équipe est : "Paris St-Germain : 0".
Nous allons maintenant simuler une rencontre entre deux équipes, l'équipe
numéro
i et la numéro
j.
Par exemple, si
i vaut 0 et
j vaut 1, c'est la rencontre
classique PSG-OM.
question(); ?>Créez un algorithme joueUnMatch
qui :
- prend en entrée les numéros des deux équipes qui jouent,
et les tableaux nécessaires,
- tire au hasard un nombre aléatoire
entre 0 et 5 pour décider le nombre de buts de chaque équipe du match
(rappelez-vous de la fonction nombreAleatoire qui prend en entrée
deux entiers a et b et qui renvoie un nombre aléatoire
choisi entre a et b),
- puis renvoie en sortie le tableau
des scores mis à jour en fonction des points du vainqueur (ou du match nul).
question(); ?>A l'intérieur de l'algorithme joueUnMatch,
ajoutez une instruction pour afficher le nombre de buts marqués par chaque équipe, avec
un message du genre : "Match equipe 0 contre equipe 1 / Paris St-Germain contre Olympique de Marseille / Resultat : 3-3".
question(); ?>A l'intérieur de l'algorithme main,
ajoutez une instruction pour simuler un match entre le Paris St-Germain et l'Olympique
de Marseille (en utilisant un appel à l'algorithme
joueUnMatch).
question(); ?>Modifiez l'algorithme joueUnMatch
pour que le nombre de buts de chaque équipe soit tiré aléatoirement entre 0
et le niveau de l'équipe (stocké dans le tableau
niveau,
qui doit donc être transmis en entrée de l'algorithme).
En utilisant une (ou des) boucles dans l'algorithme
main,
question(); ?>appelez l'algorithme joueUnMatch
plusieurs fois afin que chaque équipe joue exactement une fois contre toutes les autres.
Si vous avez terminé, rendez-vous au
TP bonus.