2015-06-14 73 views
1

好吧,有些东西一直在窃听我,我一直没能找到答案。因此,这里的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的工作原理。谢谢!

回答

1

compare是以choice1choice2作为参数的函数。它们的值在函数被调用时确定。举例来说,如果你有2个变量foobar包含字符串是这样的:

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

和你打电话compare通过这些2个变量,就像这样:

compare(foo, bar); 

然后,里面comparechoice1'foo'choice2将是'bar'

对于字符串,这是完全一样的调用compare这样的:

compare('rock', 'paper'); 

如果你看一下Codecademy网站例子余下部分,你会看到一个电话compare进一步下跌。

+0

谢谢你亚历克斯为详细和有用的答案确定在开始随机的,userChoice。我应该在最后的比较和变量如何用整个if/else函数创建连接。我仍在努力研究如何在JavaScript中定制事物。我会继续练习,希望它很快会变得更轻松。再次感谢你! –

0

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

您可以使用compare(userChoice, computerChoice);在脚本结尾处调用比较函数。因此choice1将具有值userChoicechoice2将具有值computerChoice

computerChoice由用户输入