Javascript岩石,纸张,剪刀游戏的力学
问题描述:
好吧,有些东西一直在窃听我,我一直没能找到答案。因此,这里的Codeacademy的石头,剪子,布的游戏:Javascript岩石,纸张,剪刀游戏的力学
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";
} console.log("Computer: " + computerChoice);
var compare = function(choice1, choice2){
if(choice1 === choice2) {
return "The result is a tie!";
}
else if(choice1 === "rock") {
if(choice2 === "scissors") {
return "rock wins";
}
else {
return "paper wins";
}
}
else if(choice1 === "paper") {
if(choice2 === "rock") {
return "paper wins"
}
else {
return "scissors wins"
}
}
else if(choice1 === "scissors") {
if(choice2 === "rock") {
return "rock wins"
}
else {
return "scissors wins"
}
}
};
compare(userChoice, computerChoice);
现在我想知道的,是如何计算机知道什么是选择1和选择2时,它使用它的的if/else循环决定赢家?它是在userChoice和computerChoice函数中声明的,如果是这样的话?链接到任何文档将有所帮助。我只是想了解JavaScript的工作原理。谢谢!
答
compare
是以choice1
和choice2
作为参数的函数。它们的值在函数被调用时确定。举例来说,如果你有2个变量foo
和bar
包含字符串是这样的:
var foo = 'rock';
var bar = 'paper';
和你打电话compare
通过这些2个变量,就像这样:
compare(foo, bar);
然后,里面compare
,choice1
会'foo'
和choice2
将是'bar'
。
对于字符串,这是完全一样的调用compare
这样的:
compare('rock', 'paper');
如果你看一下Codecademy网站例子余下部分,你会看到一个电话compare
进一步下跌。
答
choice1
和choice2
是函数compare()
的参数,因此它们会在您调用函数时将该值传递给该函数。
您可以使用compare(userChoice, computerChoice);
在脚本结尾处调用比较函数。因此choice1
将具有值userChoice
和choice2
将具有值computerChoice
。
computerChoice
由用户输入
谢谢你亚历克斯为详细和有用的答案确定在开始随机的,
userChoice
。我应该在最后的比较和变量如何用整个if/else函数创建连接。我仍在努力研究如何在JavaScript中定制事物。我会继续练习,希望它很快会变得更轻松。再次感谢你! –