[英]Mechanics of the Javascript rock, paper, scissors game
好吧,这一直困扰着我,而我一直找不到答案。 所以这是Codeacademy的石头,纸,剪刀游戏:
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);
现在我想知道的是,当计算机将它用于确定赢家的if / else循环时,计算机如何知道choice1和choice2是什么? 它是在userChoice和computerChoice函数上声明的,如果是的话,如何声明? 链接到任何文档将很有帮助。 我只是想了解JavaScript的工作原理。 谢谢!
compare
是一个以choice1
和choice2
为参数的函数。 它们的值在调用函数时确定。 例如,如果您有两个包含以下字符串的变量foo
和bar
:
var foo = 'rock';
var bar = 'paper';
然后调用compare
传递这两个变量,如下所示:
compare(foo, bar);
然后,在compare
, choice1
将为'foo'
而choice2
将为'bar'
。
对于字符串,这与调用compare
完全相同,如下所示:
compare('rock', 'paper');
如果您查看本代码学院示例的其余部分,则会看到一个调用,以compare
进一步的compare
。
choice1
和choice2
是函数compare()
,因此它们采用您在调用函数时传递给函数的值。
您可以使用compare(userChoice, computerChoice);
在脚本末尾调用compare函数compare(userChoice, computerChoice);
。 因此, choice1
将拥有的价值userChoice
和choice2
将拥有的价值computerChoice
。
在开始时确定computerChoice
是随机的,而userChoice
由用户输入确定
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.