IdentifiantMot de passe
Mot de passe oublié ?

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

# Exercice tic tac toe javascript

Sujet :

## JavaScript

1. Exercice tic tac toe javascript
J'ai de la diffilcuté à terminer cette exercice, merci de m'aider

 Code : Sélectionner tout - Visualiser dans une fenêtre à part
```123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215const COMBINATIONS = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6]
];

const PLAYER_ONE_CLASS = 'player-1';
const PLAYER_TWO_CLASS = 'player-2';
const PLAYED_CLASS = 'played';
const MAX_TURNS = '8';

let playerOneTurn = true;
const playerOnePoints = '0';
const playerTwoPoints = '0';
let turns = '0';

const playerOneCombination = [];
const playerTwoCombination = [];

const board = document.querySelector('.board');
const squares = Array.from(document.querySelectorAll('.square'));
const playerOneScore = document.querySelector('#player-1-score');
const playerTwoScore = document.querySelector('#player-2-score');

setTimeout(() => {
}, 3000);
}

if (player === PLAYER_ONE_CLASS) {
combination = playerOneCombination;
}
else {
combination = playerTwoCombination;
}

return COMBINATIONS.some((combinationToCheck) => {
return combinationToCheck.every((square) => {
return combination.includes(square);
});
});
}

const declareDraw = () => {

squares.forEach((square) => {
square.removeEventListener('click', handleClick);
});
}

const resetBoard = () => {
board.classList.replace(PLAYER_TWO_CLASS, PLAYER_ONE_CLASS);
squares.forEach((square) => {
square.classList.remove(PLAYER_ONE_CLASS, PLAYER_TWO_CLASS, PLAYED_CLASS);
});
playerOneCombination.length = 0;
playerTwoCombination.length = 0;

/**
* !!!QUESTION!!!
* 18. Réinitialiser la variable turns à 0.
*/

turns.length = 0;

/**
* !!!QUESTION!!!
* 19. Réinitialiser la variable playerOneTurn à true.
*/

playerOneTurn.length = true;

}

const incrementWinnersScore = (player) => {
/**
* !!!QUESTION!!!
* 20. Créer un if statement qui vérifie si le paramètre player est égal à la constante PLAYER_ONE_CLASS.
*/

/**
* !!!QUESTION!!!
* 21. Si oui, incrémenter la variable playerOnePoints de 1.
*/

/**
* !!!QUESTION!!!
* 22. Sinon, incrémenter la variable playerTwoPoints de 1.
*/

return player === PLAYER_ONE_CLASS ? playerOnePoints : playerTwoPoints;
}

const checkWinner = (player) => {
if (checkCombination(player)) {
const playerScore = player === PLAYER_ONE_CLASS ? playerOneScore : playerTwoScore;

playerScore.textContent = playerPoints;

/**
* !!!QUESTION!!!
*
* 23. Modifier la string alertText afin qu'elle affiche le numéro du joueur qui a gagné.
*
* Par exemple, si le joueur 1 a gagné, la string alertText devrait être égale à "Player 1 win".
* Si le joueur 2 a gagné, la string alertText devrait être égale à "Player 2 win".
*

squares.forEach((square) => {
square.removeEventListener('click', handleClick);
});

return true;
} else if (turns === MAX_TURNS) {
declareDraw();

return true;
}

return false;
};

const square = event.target;
square.removeEventListener('click', handleClick);
/**
* !!!QUESTION!!!
* 24. Utiliser une ternary operator pour définir la variable nommée player comme suit:
* - Si c'est au tour du joueur 1 de jouer, la variable player est égale à la classe PLAYER_ONE_CLASS.
* - Sinon, la variable player est égale à la classe PLAYER_TWO_CLASS.
*/

/**
* !!!QUESTION!!!
* 25. Utiliser une ternary operator pour définir la variable nommée nextPlayer comme suit:
* - Si c'est au tour du joueur 1 de jouer, la variable nextPlayer est égale à la classe PLAYER_TWO_CLASS.
* - Sinon, la variable nextPlayer est égale à la classe PLAYER_ONE_CLASS.
*/

board.classList.replace(player, nextPlayer);
/**
* !!!QUESTION!!!
* 26. Assignez la variable nommée squareNumber à l'ID de la case.
*
* Pour aller chercher l'id, utilisez square.id
*
* Assurez-vous de coercer la valeur en Number.
*/

/**
* !!!QUESTION!!!
* 27. Vérifier si playerOneTurn est égal à true.
*
* Si c'est le cas, utilisez ce code: playerOneCombination.push(squareNumber);
* Sinon, utilisez ce code: playerTwoCombination.push(squareNumber);
*/

const hasWinner = checkWinner(player);
/**
* !!!QUESTION!!!
* 28. Vérifier si hasWinner est égal à true.
*
* Si c'est le cas, utilisez ce code: return resetBoard();
*/

/**
* !!!QUESTION!!!
* 29. Inverser la valeur de la variable "playerOneTurn" pour passer au joueur suivant. Donc si c'est au tour du joueur 1 de jouer,
* la variable "playerOneTurn" est égale à true et si c'est au tour du joueur 2 de jouer, la variable "playerOneTurn" est égale à false.
*/

/**
* !!!QUESTION!!!
* 30. Incrémenter la variable "turns" de 1 pour indiquer qu'un tour a été joué.
*/

};

(() => {
squares.forEach((square) => {
});
})();```

2. ...
Nous ne sommes pas là pour faire des exercices...
Dis nous ce qui coince...

3. exercice
Désolé c'est la première fois que je post ici donc je savais pas trop comment introduire mon problème. J'ai réduit le tout, en faite j'essaie d'apprendre la programmation par moi-même en suivant des tutos et des classes en ligne. Je suis tombé sur cette exercice et j'ai essayé avec le peu de mes connaissance de le faire et je bogue sur certaines élément demandé pour le terminé donc un coup de main serait le bienvenue.

 Actualités F.A.Q JS TUTORIELS JS SOURCES JS EXERCICES JS LIVRES JS QUIZZ JS