Javascript 为什么我没有从这个石头剪刀游戏中得到任何结果?
尝试在JS中构建一个简单的游戏剪刀、石头、布,但不知道我在这里做错了什么。在提示符中输入并选择例如纸张之后,代码中没有任何反应。有人能用一种非常教育性的方式给我解释一下吗?我错过了什么Javascript 为什么我没有从这个石头剪刀游戏中得到任何结果?,javascript,Javascript,尝试在JS中构建一个简单的游戏剪刀、石头、布,但不知道我在这里做错了什么。在提示符中输入并选择例如纸张之后,代码中没有任何反应。有人能用一种非常教育性的方式给我解释一下吗?我错过了什么 var Number = Math.random() Number = Number * 10; Number = Math.round(Number); var Number = Math.floor(Math.random() * (2 - 0 + 1)) + 0; console.log (Number)
var Number = Math.random()
Number = Number * 10;
Number = Math.round(Number);
var Number = Math.floor(Math.random() * (2 - 0 + 1)) + 0;
console.log (Number);
var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLocaleLowerCase;
if (Number == 0) {
Number = "scissors";
} if (Number == 1){
Number = "stone";
} if (Number == 2){
Number = "paper";
}
if (Number == userInput ){
alert("TIE");
} else if (Number == "scissors" && userInput == "paper"){
alert("Scissors Win's");
} else if (Number == "scissors" && userInput == "stone"){
alert("Stone Win's");
} else if (Number == "paper" && userInput == "scissors"){
alert("Scissors Win's");
} else if (Number == "paper" && userInput == "stone"){
alert("Paper Win's");
} else if (Number == "stone" && userInput == "scissors"){
alert("Stone Win's");
} else if (Number == "stone" && userInput == "paper"){
alert("Paper Win's");
}
第8行有错误
var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLocaleLowerCase;
把那行改成
var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLowerCase();
正确代码:
var Number = Math.random()
Number = Number * 10;
Number = Math.round(Number);
var Number = Math.floor(Math.random() * (2 - 0 + 1)) + 0;
console.log (Number);
var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLowerCase();
console.log(userInput);
if (Number == 0) {
Number = "scissors";
} if (Number == 1){
Number = "stone";
} if (Number == 2){
Number = "paper";
}
if (Number == userInput ){
alert("TIE");
} else if (Number == "scissors" && userInput == "paper"){
alert("Scissors Win\'s");
} else if (Number == "scissors" && userInput == "stone"){
alert("Stone Win\'s");
} else if (Number == "paper" && userInput == "scissors"){
alert("Scissors Win\'s");
} else if (Number == "paper" && userInput == "stone"){
alert("Paper Win\'s");
} else if (Number == "stone" && userInput == "scissors"){
alert("Stone Win\'s");
} else if (Number == "stone" && userInput == "paper"){
alert("Paper Win\'s");
}
您的主要错误在这一行:
var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLocaleLowerCase;
我修复了这个问题,只调用了.toLowerCase,我还更新了变量名,使其不是全局对象,我还清理了您的数学和变量重新关联,因为您在这两个地方都编写了不必要的代码。代码如下,您可以检查小提琴:
检查控制台是否有错误no errors:@tymejvp请创建一个再现该问题的JSFIDLE。首先,您不应该使用Number作为变量名,因为它已经是一个现有的全局对象。将我的答案改为注释:调用toLocaleLowerCase,即toLocaleLowerCase结尾作为打字错误
var num = Math.random()
num = num * 10;
num = Math.round(num);
num = Math.floor(Math.random() * (2 + 1));
var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLowerCase();
if (num == 0) {num = "scissors";}
if (num == 1){num = "stone";}
if (num == 2){num = "paper";}
if (num == userInput ){alert("TIE");}
else if (num == "scissors" && userInput == "paper"){alert("Scissors Win's");}
else if (num == "scissors" && userInput == "stone"){alert("Stone Win's");}
else if (num == "paper" && userInput == "scissors"){alert("Scissors Win's");}
else if (num == "paper" && userInput == "stone"){alert("Paper Win's");}
else if (num == "stone" && userInput == "scissors"){alert("Stone Win's");}
else if (num == "stone" && userInput == "paper"){alert("Paper Win's");}