Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

136
Views
How do I prompt user for input after each round in rock paper scissors?

The game works fine after 1 round. I'm trying to play 5 rounds. I tried a for-loop before the while loop. But, it still only prompts the user for input one time.

let computerPlay = () => {
      let compChoices = ["rock", "paper", "scissors"]; //array storing computer possible actions
      let i = Math.floor(Math.random() * 3);
      let choice = compChoices[i];
    
      return choice;
    };
    
    //
    let playerChoice = prompt("Select your action").toLowerCase();
    let computerChoice = computerPlay();
    
    let playRound = (playerSelection, computerSelection) => {
      let winner = "";
      if (playerSelection === computerSelection) {
        winner = "tie";
      } else if (playerSelection > computerSelection) {
        winner = "player";
      } else {
        winner = "computer";
      }
    
      return console.log(winner);
    };
    
    let i = 0;
    while (i < 5) {
      playRound(playerChoice, computerChoice);
      i++;
    }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

UPDATED

As requirement, author is asking to keep playerSelection and computerSelection params for playRound. I'd propose the fix is to put playerChoice and computerChoice in while loop

let computerPlay = () => {
      let compChoices = ["rock", "paper", "scissors"]; //array storing computer possible actions
      let i = Math.floor(Math.random() * 3);
      let choice = compChoices[i];
    
      return choice;
    };
    
    let playRound = (playerSelection, computerSelection) => {
      let winner = "";
      if (playerSelection === computerSelection) {
        winner = "tie";
      } else if (playerSelection > computerSelection) {
        winner = "player";
      } else {
        winner = "computer";
      }
    
      return console.log(winner);
    };
    
    let i = 0;
    while (i < 5) {
      //here is the change
      let playerChoice = prompt("Select your action").toLowerCase();
      let computerChoice = computerPlay();
      playRound(playerChoice, computerChoice);
      i++;
    }

OLD ANSWER

Your problem is you pass prompt outside of your playRound. playerSelection and computerSelection should be in playRound too that would help for resetting values of computer and your choices' every round.

let computerPlay = () => {
      let compChoices = ["rock", "paper", "scissors"]; //array storing computer possible actions
      let i = Math.floor(Math.random() * 3);
      let choice = compChoices[i];
    
      return choice;
    };
    
    let playRound = () => {
      let playerSelection = prompt("Select your action").toLowerCase();
      let computerSelection = computerPlay();
      let winner = "";
      if (playerSelection === computerSelection) {
        winner = "tie";
      } else if (playerSelection > computerSelection) {
        winner = "player";
      } else {
        winner = "computer";
      }
    
      return console.log(winner);
    };
    
    let i = 0;
    while (i < 5) {
      playRound();
      i++;
    }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!