【发布时间】:2020-10-16 17:53:22
【问题描述】:
我正在用 JavaScript 制作一个简单的石头剪刀布游戏,但我一直遇到一个错误,当我调用一个函数时,它总是返回它不是一个。任何帮助,将不胜感激!我确定我只是输入了错误的位置,或者我没有正确传递变量。或者我尝试过移动它并且尝试不将变量传递给它,但它一直给我相同的错误代码。
var playGame = function() {
var playerChoice = window.prompt("Choose your weapon! Enter r for Rock, p for paper, or s for Scissors.");
console.log(playerChoice)
switch (playerChoice) {
case "r":
console.log("Player chooses Rock!");
break;
case "p":
console.log("Player chooses Paper!");
break;
case "s":
console.log("Player chooses Scissors!");
break;
default:
window.alert("You did not pick a valid option. Try again.");
playGame();
break;
};
var randomNum = Math.floor(Math.random() * 3 + 1);
console.log(randomNum);
var compChoice = "";
switch (randomNum) {
case 1:
compChoice = "r";
console.log(compChoice);
break;
case 2:
compChoice = "p";
console.log(compChoice);
break;
case 3:
compChoice = "s"
console.log(compChoice);
break;
};
contest(playerChoice, compChoice);
};
var playConfirm = window.confirm("Would you like to play Rock, Paper, Scissors?");
if (playConfirm) {
playGame();
} else {
alert("Ok, maybe next time. Have a nice day!");
}
var contest = function(pChoice, cChoice) {
// for () {
switch (pChoice, cChoice) {
case (pChoice === cChoice):
window.alert("It's a tie!");
// playAgain();
break;
case (pChoice = "r") && (cChoice = "p"):
window.alert("I won! Paper covers rock!");
// playAgain();
break;
case (pChoice = "r") && (cChoice = "s"):
window.alert("You won! Rock crushes scissors!");
// playAgain();
break;
case (pChoice = "p") && (cChoice = "r"):
window.alert("You won! Paper covers rock!");
// playAgain();
break;
case (pChoice = "p") && (cChoice = "s"):
window.alert("I won! Scissors cuts paper!");
// playAgain();
break;
case (pChoice = "s") && (cChoice = "r"):
window.alert("I won! Rock crushes scissors!");
// playAgain();
break;
case (pChoice = "s") && (cChoice = "p"):
window.alert("You won! Scissors cuts paper!");
// playAgain();
break;
}
};
【问题讨论】:
-
错误出现在哪里?
-
您收到错误是因为您在将函数分配给
contest之前调用了playGame(它调用了contest)。
标签: javascript function loops