In my rock paper scissor game the user has to enter rock, paper or scissor 5 times then a message shown who won.Sometimes I can write rock, paper, scissor 5 times in a row and it works fine but sometimes I have this message:
here is my js code:
function getComputerChoice() {
let rockRandomNumber = Math.floor(Math.random() * 10000);
let paperRandomNumber = Math.floor(Math.random() * 10000);
let scissorRandomNumber = Math.floor(Math.random() * 10000);
let randomChoice;
if (rockRandomNumber > paperRandomNumber && rockRandomNumber > scissorRandomNumber) {
randomChoice = "Rock";
} else if (paperRandomNumber > rockRandomNumber && rockRandomNumber > scissorRandomNumber) {
randomChoice = "Paper";
} else {
randomChoice = "Scissor";
}
return randomChoice;
}
function playRound(playerSelection, computerSelection) {
playerSelection = playerSelection.toLowerCase();
computerSelection = computerSelection.toLowerCase();
let counter = 0;
let result;
while (counter != 1) {
if (playerSelection === "rock" && computerSelection === "scissor") {
result = "You won! Rock beat Scissor";
counter++;
} else if (playerSelection === "paper" && computerSelection === "rock") {
result = "You won! Paper beat Rock";
counter++
} else if (playerSelection === "scissor" && computerSelection === "paper") {
result = "You won! Scissor beat Paper";
counter++
} else if (playerSelection === "paper" && computerSelection === "scissor") {
result = "You lost! Scissor beat Paper";
counter++
} else if (playerSelection === "rock" && computerSelection === "paper") {
result = "You lost! Paper beat Rock";
counter++
} else if (playerSelection === "scissor" && computerSelection === "rock") {
result = "You lost! Rock beat Scissor";
counter++
} else {
computerSelection = getComputerChoice();
computerSelection = computerSelection.toLowerCase();
break;
}
}
return result;
}
function finalResult(playerCounter, computerCounter) {
if (playerCounter > computerCounter) {
return "Congratulation, you beat the computer";
} else {
return "You lost, better luck next time";
}
}
function game() {
let playerCounter = 0;
let computerCounter = 0;
let userPrompt = prompt("Enter rock, paper or scissor");
let computerSelection = getComputerChoice();
let result;
let containtWonOrNot;
let won = "won"
for(let i = 0; i < 5; i++) {
result = playRound(userPrompt, computerSelection);
containtWonOrNot = result.includes(won);
if (containtWonOrNot === true) {
console.log(result);
playerCounter++;
} else {
console.log(result)
computerCounter++;
}
userPrompt = prompt("Enter rock, paper or scissor");
computerSelection = getComputerChoice();
console.log(playerCounter + "-" + computerCounter);
}
console.log(finalResult(playerCounter, computerCounter));
}
game();
and html code:
`<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Rock paper scissors</title>
</head>
<body>
<script src="js/script.js"></script>
</body>
</html>`
When I write in the user prompt I write like that: rock, paper, scissor