我是js新手,只是根据石头剪刀布游戏写了下面的基本功能。由于某种原因,比较函数的结果总是显示为 “绘制”而不是其他结果。我在这里做错了什么?
var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
computerChoice = "rock";
} else if (computerChoice <= 0.67) {
computerChoice = "paper";
} else {
computerChoice = "scissors";
}
choice1 = userChoice;
choice2 = computerChoice;
var compare = function (choice1, choice2) {
if (choice1 == choice2) {
return "draw!";
}
if (choice1 == "rock") {
if (choice2 == "scissors") {
return "rock wins!";
} else {
return "paper wins!";
}
}
if (choice1 == "paper") {
if (choice2 == "scissors") {
return "scissors wins!";
} else {
return "paper wins!";
}
}
if (choice1 == "scissors") {
if (choice2 == "rock") {
return "rock wins!";
} else {
return "scissors wins!";
}
}
};
compare();
谢谢我们
最佳答案
您正在调用不带参数的比较:
compare();
因此,choice1
和 choice2
都等于 undefined
并且您的游戏将始终以平局告终。
您应该尝试像这样调用比较函数:
compare(userChoice, computerChoice);
如果定义函数,则参数列表定义函数范围内给定变量的名称。它不是应该在函数本身中可用的变量的命名约定。
关于javascript - if 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17272863/