繁体   English   中英

Javascript岩石,纸张,剪刀游戏的力学

[英]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是一个以choice1choice2为参数的函数。 它们的值在调用函数时确定。 例如,如果您有两个包含以下字符串的变量foobar

var foo = 'rock';
var bar = 'paper';

然后调用compare传递这两个变量,如下所示:

compare(foo, bar);

然后,在comparechoice1将为'foo'choice2将为'bar'

对于字符串,这与调用compare完全相同,如下所示:

compare('rock', 'paper');

如果您查看本代码学院示例的其余部分,则会看到一个调用,以compare进一步的compare

choice1choice2是函数compare() ,因此它们采用您在调用函数时传递给函数的值。

您可以使用compare(userChoice, computerChoice);在脚本末尾调用compare函数compare(userChoice, computerChoice); 因此, choice1将拥有的价值userChoicechoice2将拥有的价值computerChoice

在开始时确定computerChoice是随机的,而userChoice由用户输入确定

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM