我正在尝试在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>