HTML 游戏中的 JS 无法运行



我正在尝试在HTML中的脚本标签中构建岩石/纸/剪刀游戏。据我所知,所有内容都是A-OK,但是当我运行它时,我会在关闭脚本标签的控制台中收到一条错误消息。

你们可以看一下,让我知道:

1。)为什么我要在闭幕脚本标签上收到错误消息,以及我需要做的解决方案并按照我想要的时间运行该代码?

2。)如果您对我的代码有任何建议吗?我很自学,并试图尽可能地吸收。

//Game parameters to start 
var computerScore = 0
var playerScore = 0
//Game functions
function game() {
  while (computerScore >= 5 && playerScore >= 5) {
    //Computer Selection 
    function computerPlay() {
      let playerSelection = prompt("Make your choice: rock, paper, or scissors!")
      let computerSelection = Math.floor(Math.random() * 3)
      //Player Selection
      if (playerSelection.toLowerCase() == "rock") {
        var playerChoice = 0;
      } else if (playerSelection.toLowerCase() == "paper") {
        var playerChoice = 1;
      } else if (playerSelection.toLowerCase() == "scissors") {
        var playerChoice = 2;
      } else {
        alert("Sorry, that word isn't recognized. Please select rock, paper, or scissors.")
      }
      //Rock
      if (computerSelection == 0) {
        var computerChoice = 0
        //Paper
      } else if (computerSelection == 1) {
        var computerChoice = 1
        //Scissors
      } else if (computerSelection == 2) {
        var computerChoice = 2
      } else {}
      //OUTCOMES 
      if (computerSelection == 0 && playerChoice == 0 || computerSelection == 1 && playerChoice == 1 || computerSelection == 2 && playerChoice == 2) {
        alert("Tie game!")
      } else if (computerSelection == 1 && playerChoice == 0) {
        alert("Paper beats rock. You lose!")
      } else if (computerSelection == 2 && playerChoice == 0) {
        alert("Rock beats scissors. You win!")
      } else if (computerSelection == 0 && playerChoice == 1) {
        alert("Paper beats rock. You win!")
      } else if (computerSelection == 0 && playerChoice == 2) {
        alert("Rock beats scissors. You lose!")
      } else if (computerSelection == 1 && playerChoice == 2) {
        alert("Scissors beat paper. You win!")
      } else if (computerSelection == 2 && playerChoice == 1) {
        alert("Scissors beat paper. You lose!")
      } else {}
      //Increments 
      if (computerSelection > playerChoice) {
        computerScore++
      } else if (computerSelection < playerChoice) {
        playerScore++
      } else {}
      if (computerScore == 5 && playerScore < 5) {
        alert("Computer wins, " + computerScore + " to " + playerScore + "!")
      } else if (playerScore == 5 && computerScore < 5) {
        alert("Player wins, " + playerScore + " to " + computerScore + "!")
      } else {}
    }
    game()

所以这里有几件事,

首先,您的游戏功能没有关闭括号。

其次,您的游戏功能内部的计算机游戏功能永远不会被调用(并且它也没有关闭括号,但我建议删除它)

第三,当计算机/播放器科目超过5时,您的时条件(第12行)触发,但是在第7行和8行时,您可能希望它们小于或等于。

请参见下面的固定版本。

<!DOCTYPE HTML >
<html>
<body>
  <script>
    //Game parameters to start 
    var computerScore = 0
    var playerScore = 0
    //Game functions
    function game() {
      while (computerScore <= 5 && playerScore <= 5) {
        //Computer Selection 
        let playerSelection = prompt("Make your choice: rock, paper, or scissors!")
        let computerSelection = Math.floor(Math.random() * 3)
        //Player Selection
        if (playerSelection.toLowerCase() == "rock") {
          var playerChoice = 0;
        } else if (playerSelection.toLowerCase() == "paper") {
          var playerChoice = 1;
        } else if (playerSelection.toLowerCase() == "scissors") {
          var playerChoice = 2;
        } else {
          alert("Sorry, that word isn't recognized. Please select rock, paper, or scissors.")
        }
        //Rock
        if (computerSelection == 0) {
          var computerChoice = 0
          //Paper
        } else if (computerSelection == 1) {
          var computerChoice = 1
          //Scissors
        } else if (computerSelection == 2) {
          var computerChoice = 2
        } else {}
        //OUTCOMES 
        if (computerSelection == 0 && playerChoice == 0 || computerSelection == 1 && playerChoice == 1 || computerSelection == 2 && playerChoice == 2) {
          alert("Tie game!")
        } else if (computerSelection == 1 && playerChoice == 0) {
          alert("Paper beats rock. You lose!")
        } else if (computerSelection == 2 && playerChoice == 0) {
          alert("Rock beats scissors. You win!")
        } else if (computerSelection == 0 && playerChoice == 1) {
          alert("Paper beats rock. You win!")
        } else if (computerSelection == 0 && playerChoice == 2) {
          alert("Rock beats scissors. You lose!")
        } else if (computerSelection == 1 && playerChoice == 2) {
          alert("Scissors beat paper. You win!")
        } else if (computerSelection == 2 && playerChoice == 1) {
          alert("Scissors beat paper. You lose!")
        } else {}
        //Increments 
        if (computerSelection > playerChoice) {
          computerScore++
        } else if (computerSelection < playerChoice) {
          playerScore++
        } else {}
        if (computerScore == 5 && playerScore < 5) {
          alert("Computer wins, " + computerScore + " to " + playerScore + "!")
        } else if (playerScore == 5 && computerScore < 5) {
          alert("Player wins, " + playerScore + " to " + computerScore + "!")
        } else {}
      }
    }
    game();
  </script>
</body>
</html>

最新更新