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

493
Visualizações
JavaScript - Rock Paper Scissors in console

I'm having problems getting my simple Rock Paper Scissors game to display the winner of each game when the user chooses anything either than Rock. How do I use multiple if...else statements so that my declareWinner function works when the user chooses Scissors or Paper?

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

There were two problems with the code:-

  • You are doing choices[Math.floor(Math.random() * 3)]; which results in a random value from choices array, so there is no need for multiple if-else statements that were after it.
  • You were missing the declareWinner function declaration.

Also, You are missing some conditions in declareWinner function, like 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!');
  }
}


Tip:- You can use an object to choose the winner in declareWinner function.

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

You can't change a const value. Use let instead:

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