Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

504
Visualizações
JavaScript - Piedra, papel o tijera en la consola

Tengo problemas para que mi sencillo juego Piedra, papel o tijera muestre el ganador de cada juego cuando el usuario elige cualquier cosa que no sea Piedra. ¿Cómo uso varias declaraciones if...else para que mi función declareWinner funcione cuando el usuario elige Tijeras o Papel?

 let choices = ["rock", "paper", "scissors"]; // GETTING USER INPUT const userInput = prompt("Do you choose rock, paper or scissors?").toLocaleLowerCase(); if(userInput ==="paper" || userInput ==="rock" || userInput ==="scissors"){ console.log("You chose " + `${userInput}`); } else { console.log("Error! Try again!"); } // GETTING COMPUTER INPUT const computerInput = choices[Math.floor(Math.random() * 3)]; console.log("Computer chose" + ` ${computerInput}`); if (computerInput <= 0.33) { computerInput = "rock"; } if (computerInput >= 0.67) { computerInput = "paper"; } if (computerInput >= 0.66) { computerInput = "scissors"; } // DECLARE WINNER // User Chooses Rock function declareWinner(userInput, computerInput) { if(userInput === "rock" && computerInput === 'paper') { console.log ('You win! Rock beats paper!'); } else if (userInput === 'rock' && computerInput === 'rock') { console.log ('Its a tie!'); } else if (userInput === 'rock' && computerInput === 'scissors') { console.log ('You win! Rock beats scissors!'); // User Chooses Paper } else if(userInput === "paper" && computerInput === 'rock') { console.log ('You win! Rock beats paper!'); } else if (userInput === 'paper' && computerInput === 'paper') { console.log ('Its a tie!'); } else if (userInput === 'paper' && computerInput === 'scissors') { console.log ('You lose! Scissors beats paper!'); // User Chooses Scissors } else if(userInput === "scissors" && computerInput === 'rock') { console.log ('You lose! Rock beats scissors!'); } else if (userInput === 'scissors' && computerInput === 'paper') { console.log ('You win! Scissors beats paper!'); } else { console.log ('It is a tie!'); } } declareWinner();
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Había dos problemas con el código: -

  • Estás haciendo choices[Math.floor(Math.random() * 3)]; lo que da como resultado un valor aleatorio de la matriz de choices , por lo que no hay necesidad de múltiples declaraciones if-else que estaban después.
  • Te faltaba la declaración de la función declareWinner .

Además, le faltan algunas condiciones en la función declareWinner , como userInput === 'paper' && computerInput === 'rock' , userInput === 'rock' && computerInput === 'scissors' etc.

 const choices = ["rock", "paper", "scissors"]; // GETTING USER INPUT const userInput = prompt("Do you choose rock, paper or scissors?"); if (userInput === "paper" || userInput === "rock" || userInput === "scissors") { console.log("You chose " + `${userInput}`); } else { console.log("Error! Try again!"); } // GETTING COMPUTER INPUT let computerInput = choices[Math.floor(Math.random()*3)]; console.log("Computer chose" + ` ${computerInput}`); // DECLARE WINNER const winner = declareWinner(userInput, computerInput); function declareWinner(userInput, computerInput) { if (userInput === 'rock' && computerInput === 'paper') { console.log('You lose! Rock beats Paper'); } else if (userInput === 'scissors' && computerInput === 'paper') { console.log('You win! Scissors beats Paper'); } else { console.log('You tie!'); } }


Sugerencia: puede usar un objeto para elegir al ganador en la función declareWinner .

 const choices = ["rock", "paper", "scissors"]; // GETTING USER INPUT const userInput = prompt("Do you choose rock, paper or scissors?"); if (userInput === "paper" || userInput === "rock" || userInput === "scissors") { console.log("You chose " + `${userInput}`); } else { console.log("Error! Try again!"); } // GETTING COMPUTER INPUT let computerInput = choices[Math.floor(Math.random() * 3)]; console.log("Computer chose" + ` ${computerInput}`); // DECLARE WINNER const winner = declareWinner(userInput, computerInput); function declareWinner(userInput, computerInput) { let win = { rock: "scissors", paper: "rock", scissors: "paper" }; if (win[userInput] === computerInput) { console.log(`You won! ${userInput} beats ${computerInput}`); } else if (win[computerInput] === userInput) { console.log(`You lost! ${computerInput} beats ${userInput}`); } else console.log("Tie") }

about 4 years ago · Juan Pablo Isaza Relatório

0

No puede cambiar un valor constante. Usa let en su lugar:

 let computerInput = choices[Math.floor(Math.random() * 3)];
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda