Estoy tratando de desarrollar mi primer juego con Js, el problema es que mis puntajes y las variables de la ronda no se resumen, cuando los registro en la consola no se muestran así: playerScore = 2, computerScore = 1, round = 2, aquí está mi código.
// Computer random selection function computerPlay() { //Game options to play with let options = ['Rock', 'Paper', 'Scissors']; //Random number generator let randomNumber = Math.floor(Math.random() * 3); //Select random option from array let computerSelection = options[randomNumber]; // return value so the game can be played return computerSelection; } let computerSelection = computerPlay(); let playerSelection = computerPlay(); //Round let round = 1; //Add round function addRound () { round += 1; } //Scores let playerScore = 0; let computerScore = 0; // Start round, define winner, loser or tie game function playRound (playerSelection, computerSelection) { //concatenate strings to match cases switch (playerSelection + computerSelection) { // Tie case case 'RockRock': case 'PaperPaper': case 'ScissorsScissors': playerScore += 0; computerScore += 0; return 'Tie Game!'; // Player score case 'RockScissors': case 'PaperRock': case 'ScissorsPaper': playerScore += 1; return `${playerSelection} beats ${computerSelection}, You Won!`; // Computer score case 'ScissorsRock': case 'RockPaper': case 'PaperScissors': computerScore += 1; return `${computerSelection} beats ${playerSelection}, Computer Won :(`; } addRound(); } console.log(playRound(playerSelection, computerSelection)); console.log(playerScore, computerScore);Esta es la salida de la consola:
Scissors beats Paper, You Won! 1 0 Tie Game! 0 0Está utilizando return en swich-case , que no ejecutará el código debajo de la declaración de return . Y la función addRound() está debajo de las declaraciones de return . Al moverlo en la parte superior hará el trabajo
const computerPlay = () => { const options = ['Rock', 'Paper', 'Scissors']; const randomNumber = Math.floor(Math.random() * 3); const computerSelection = options[randomNumber]; return computerSelection; } let round = 0; let addRound = () => round += 1; let playerScore = 0; let computerScore = 0; function playRound() { let computerSelection = computerPlay(); let playerSelection = computerPlay(); addRound(); switch (playerSelection + computerSelection) { case 'RockRock': case 'PaperPaper': case 'ScissorsScissors': playerScore = 0; computerScore = 0; return 'Tie Game!'; case 'RockScissors': case 'PaperRock': case 'ScissorsPaper': playerScore += 1; return `${playerSelection} beats ${computerSelection}, You Won!`; case 'ScissorsRock': case 'RockPaper': case 'PaperScissors': computerScore += 1; return `${computerSelection} beats ${playerSelection}, Computer Won :(`; } } console.log(playRound()); console.log(playerScore, computerScore, round); console.log(playRound()); console.log(playerScore, computerScore, round);