const choices = ["rock", "paper", "scissors"]; function getComputerChoice() { return choices[Math.floor(Math.random() * 3)]; } function playRound(playerChoice, computerChoice) { let playerChoiceCapital = playerChoice.slice(0,1).toUpperCase() + playerChoice.slice(1,playerChoice.length) let computerChoiceCapital = computerChoice.slice(0,1).toUpperCase() + computerChoice.slice(1,computerChoice.length) if (playerChoice == computerChoice) { points.playerAddPoints(); points.computerAddPoints(); return `It's a tie! ${playerChoiceCapital} vs ${computerChoiceCapital}.`; } else if ((playerChoice == "rock" && computerChoice == "paper") || (playerChoice == "paper" && computerChoice == "scissors") || (playerChoice == "scissors" && computerChoice == "rock")) { points.computerAddPoints(); return `You lost! ${computerChoiceCapital} beats ${playerChoiceCapital}.`; } else if ((playerChoice == "rock" && computerChoice == "scissors") || (playerChoice == "paper" && computerChoice == "rock") || (playerChoice == "scissors" && computerChoice == "paper")) { points.playerAddPoints(); return `You won! ${playerChoiceCapital} beats ${computerChoiceCapital}.`; } } const points = (() => { this.player = 0; this.computer = 0; function playerAddPoints() { player++; } function computerAddPoints() { computer++; } function reset() { player = 0; computer = 0 } return {get player() {return player}, get computer() {return computer}, playerAddPoints, computerAddPoints, reset}; })() function game(clickEvent) { clickEvent.setAttribute('onclick', ' '); points.reset(); for (let i = 0; i < 5; i++) { let correctOption = false let playerChoice; while (correctOption == false) { playerChoice = prompt("What do you choose, 'rock', 'paper' or 'scissors'?"); if (playerChoice) { choices.forEach(element => { if (playerChoice.toLowerCase().trim() == element) { correctOption = true return; } }) } else if (confirm(`Do you wanna quit the game?`)) { clickEvent.setAttribute('onclick', 'game(this)'); throw new Error("Exited the game on user's request"); } } let round = playRound(playerChoice, getComputerChoice()); let pointsString = `Points: ${points.player}:${points.computer}\n`; alert(pointsString + round); } let confirmString; if (points.player > points.computer) { confirmString = `You won ${points.player}:${points.computer}` } else if (points.player == points.computer) { confirmString = `That was a ${points.player}:${points.computer} tie` } else if (points.player < points.computer) { confirmString = `You lost ${points.player}:${points.computer}` } if (confirm(`${confirmString}, do you wanna restart the game?`)) { game(); } } // game();