Javascript摇滚,纸,剪刀游戏的力学

时间:2015-06-14 12:50:28

标签: javascript

好吧,有些东西一直困扰着我,而我却找不到答案。所以这里是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用于判断获胜者的if / else循环时,它是如何知道choice1和choice2的含义?它是在userChoice和computerChoice函数上声明的,如果是这样的话怎么样?任何文档的链接都会有所帮助。我只想了解JavaScript的工作原理。谢谢!

2 个答案:

答案 0 :(得分:0)

<script type="text/javascript"> function includeJS(incFile) { document.write('<script type="text/javascript" src="' + incFile+ '"></script>'); } // Load SOME_SPECIAL_EFFECTS on viewports above 700px wide if (window.matchMedia("only screen and (min-width: 700px)").matches) { includeJS('SOME_SPECIAL_EFFECTS.js'); } </script> 是一个以comparechoice1为参数的函数。它们的值在调用函数时确定。例如,如果您有2个变量choice2foo包含如下字符串:

bar

并调用var foo = 'rock'; var bar = 'paper'; 传递这两个变量,如下所示:

compare

然后,在compare(foo, bar); 内,compare将为choice1'foo'将为choice2

对于字符串,这与调用'bar'完全相同:

compare

如果您查看代码部分示例的其余部分,您会看到对compare('rock', 'paper'); 的进一步调用。

答案 1 :(得分:0)

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

使用compare(userChoice, computerChoice);调用脚本末尾的比较功能。因此choice1的值为userChoice,而choice2的值为computerChoice

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