Trabajando en la mejora de The Odin Project Rock-Paper-Scissors considerando la manipulación DOM. Lo he estado haciendo durante 3 días, lo volví a trabajar varias veces (la versión actual se hizo a través de un tutorial) y logré detener el contador una vez que se alcanzó una puntuación de 5. Pero, tanto el lado de la computadora como el del jugador aún pueden llegar a 5 puntos haciendo clic, incluso si el oponente ya ha alcanzado los 5 puntos.
¿Cómo puedo detener el contador de un jugador si el oponente llegó primero a la meta?
Aquí está el código:
const SELECTIONS = [ { name: "rock", beats: "scissors" }, { name: "paper", beats: "rock" }, { name: "scissors", beats: "paper" } ] const yourScoreSpan = document.querySelector("[data-your-score]"); const computerScoreSpan = document.querySelector("[data-computer-score]"); //Player plays choices.forEach(choice => { choice.addEventListener("click", e => { const selectionName = choice.dataset.choice; const selection = SELECTIONS.find(selection => selection.name === selectionName) makeSelection(selection) }) }) //Selecting R,P,S function makeSelection(selection) { const computerSelection = randomSelection(); const yourWinner = isWinner(selection, computerSelection); const computerWinner = isWinner(computerSelection, selection); if((yourWinner && (yourScoreSpan.innerText < 5) && (computerScoreSpan.innerText !== 5))) incrementScore(yourScoreSpan); if(computerWinner && (computerScoreSpan.innerText < 5) && (yourScoreSpan.innerText !== 5)) incrementScore(computerScoreSpan); } //Incrementing Scores function incrementScore(scoreSpan) { scoreSpan.innerText = parseInt(scoreSpan.innerText) + 1 } //Computer plays function randomSelection() { const randomIndex = Math.floor(Math.random() * SELECTIONS.length); return SELECTIONS[randomIndex]; } //Who wins function isWinner(selection, opponentSelection) { return selection.beats === opponentSelection.name }