M1202 - TP Séance 4

Durée : 2h00




Objectifs




Au menu

  1. Cours
  2. Consignes
  3. Création des équipes
  4. Déroulement d'un match
  5. Déroulement d'un tournoi

Aujourd'hui, nous allons utiliser des tableaux en Javascript. Les tableaux permettent de stocker plusieurs valeurs dans une seule variable.

Par exemple, pour stocker les nombres 42, 3.14 et 18 dans une seule variable tab, on peut écrire en Javascript :
var tab = [42, 3.14, 18];
On dit alors que tab est un tableau de nombres, de longueur 3 (puisqu'il a trois cases).

On peut aussi créer un tableau de chaînes de caractères ["tableau", "de", "quatre", "cases"] ou un tableau de booléens [true, true, true, true, true, false].

Si on dispose d'un tableau stocké dans une variable t, on peut écrire t.length pour récupérer la longueur du tableau, c'est-à-dire son nombre de cases. Exécuter les instructions var tab=[1,2,1,2]; console.log(tab.length); dans la console du navigateur affichera le nombre 4 dans la console.

Pour accéder à une case d'un tableau, on écrit le nom de la variable contenant le tableau, suivi de crochets qui entourent le numéro de case souhaité, sachant que la première case d'un tableau est numérotée 0. Ainsi, on peut manipuler la première case d'un tableau tab comme une variable, en la désignant par le code tab[0], soit pour lire ce qu'elle contient, soit pour changer sa valeur. Par exemple exécuter les instructions var tab=[1,2,1,2]; tab[0]=3; tab[1]=tab[0]+2; console.log(tab[1]); dans la console du navigateur affichera 5 dans la console.

Si l'on veut faire une action sur toutes les cases d'un tableau, il est possible de répéter cette action sur toutes les cases à l'aide d'une boucle, en utilisant un compteur qui va stocker le numéro de la case où on est en train d'effectuer l'action. C'est ce qu'on appelle un parcours de tableau.

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 handball. Si vous n'aimez pas le handball et que vous préférez travailler sur un autre énoncé de TP, cliquez ici.

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. 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).

Enregistrez-y ce fichier M1202-TP4.html.

Lisez le code de l'algorithme fonctionPrincipale du fichier : il crée 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 handball, 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 : dans l'algorithme fonctionPrincipale, 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 fonctionPrincipale, créez un algorithme 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 (rappelez-vous de l'algorithme affiche qui prend en entrée une chaîne de caractères et l'affiche dans la page web). Cet algorithme afficheEquipes ne renvoie rien.

Pour tester l'algorithme afficheEquipes, appelez-le en mettant comme variable d'entrée la variable equipe.

De la même manière que pour l'algorithme afficheEquipes, 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 : 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 (bon en réalité ce n'est pas vraiment un classique en handball, il aurait mieux valu dire Montpellier contre Chambéry par exemple en handball masculin ou Besançon Metz en handball féminin, mais je n'allais quand même pas réécrire tout le TP...).

Créez un algorithme joueUnMatch qui :
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 équipe 0 contre équipe 1 / Paris St-Germain contre Olympique de Marseille / Résultat : 3-3".

A l'intérieur de l'algorithme fonctionPrincipale, ajoutez une instruction pour simuler un match entre le Paris St-Germain et l'Olympique de Marseille (en utilisant un appel à l'algorithme joueUnMatch).

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 fonctionPrincipale, appelez l'algorithme joueUnMatch plusieurs fois afin que chaque équipe joue exactement une fois contre toutes les autres.