Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Programme: Exercice "Compteur de Tennis" en JS
- * ESGI 2019 - Algo - IW
- * Author : Sinicha RADOSAVLJEVIC
- */
- const NB_SET = 3; // Les matches de tennis sont généralement en 2 ou 3 sets
- const ADVANTAGE = "AVT";
- let tabScorePoints;
- let tabGamePoints;
- let set;
- let end;
- /**
- * Initialise les variables du jeux : Set (manche), Game (jeu), Score
- */
- function initGameValues() {
- tabScorePoints = [];
- for(let i = 0; i < NB_SET; i++) {
- tabScorePoints[i] = [0, 0];
- }
- tabGamePoints = [0, 0];
- set = 1;
- end = false;
- }
- /**
- * Ajoute un point à un joueur dans le tableau des scores au set actuel.
- * Si le score d'un joueur atteint 6, passer au set suivant.
- * Si le score d'un joueur atteint 6 au dernier set, indiquer la fin de jeu en passant la variable 'end' à true.
- */
- function addScorePoints(player) {
- if(end) {
- return;
- }
- // Incrémente le score du joueur au set actuel
- tabScorePoints[set-1][player-1]++;
- // Vérifie s'il faut passer au set suivant ou indiquer la fin du match.
- if(tabScorePoints[set-1][player-1] == 6 && set < NB_SET) {
- set++;
- } else if(tabScorePoints[set-1][player-1] == 6) {
- end = true;
- }
- }
- /**
- * Ajoute des points à un joueur dans le jeu actuel.
- * Les points sont gagnés dans l'ordre suivant : 0 -> 15 -> 30 -> 40.
- * Si un joueur gagne le point alors qu'il est à 40, un point lui est ajouté au score
- * du match avec la fonction 'addScorePoints()', sauf si les 2 joueurs sont
- * à égalité à 40, auquel cas le joueur qui gagne passe en Avantage
- * et doit confirmer l'avantage pour gagner le jeu, sinon is repasse à égalité si l'autre joueur gagne.
- * Si un des joueurs gagne le jeu, les points du jeu sont repassé à 0.
- */
- function addGamePoint(player) {
- let opponent = (player === 1) ? 2 : 1;
- if(tabGamePoints[player-1] === 40 && tabGamePoints[opponent-1] < 40
- || tabGamePoints[player-1] === ADVANTAGE) {
- addScorePoints(player);
- tabGamePoints = [0, 0];
- } else if(tabGamePoints[opponent-1] === ADVANTAGE) {
- tabGamePoints[opponent-1] = 40;
- } else if(tabGamePoints[player-1] === 40 && tabGamePoints[opponent-1] == 40) {
- tabGamePoints[player-1] = ADVANTAGE;
- } else {
- if(tabGamePoints[player-1]<30) {
- tabGamePoints[player-1] += 15;
- } else {
- tabGamePoints[player-1] = 40;
- }
- }
- }
- // Lance le match
- initGameValues();
- while(!end) {
- let player = Math.floor(Math.random() * Math.floor(2)) + 1;
- addGamePoint(player)
- }
- // Affiche le score de fin de match
- console.log("Score:", tabScorePoints);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement