Javascript游戏输出错误
我刚刚完成了一些关于“CodeAcademy”的练习,它教会我制作一个石头、布和剪刀的游戏。除了我想要接收的输出之外,一切都正常。我不是在说“纸赢”。我得到的只是“纸”。我刚刚开始掌握JavaScript的基础,这就是为什么我还不是一个强大的脚本编写者。Javascript游戏输出错误,javascript,Javascript,我刚刚完成了一些关于“CodeAcademy”的练习,它教会我制作一个石头、布和剪刀的游戏。除了我想要接收的输出之外,一切都正常。我不是在说“纸赢”。我得到的只是“纸”。我刚刚开始掌握JavaScript的基础,这就是为什么我还不是一个强大的脚本编写者。 var userChoice = prompt("Do you choose rock, paper or scissors?"); var computerChoice = Math.random(0); if (computerChoic
var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random(0);
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!");
}
if (choice1 === "paper") {
if (choice2 === "rock") {
return "paper wins";
} else {
if (choice2 === "scissors") {
return "scissors wins";
}
}
if (choice1 === "scissors") {
if (choice2 === "rock") {
return "rock wins";
} else {
if (choice2 === "paper") {
return "scissors wins";
}
}
}
}
};
var userChoice=prompt(“您选择石头、布还是剪刀?”);
var computerChoice=Math.random(0);
如果(计算机选择<0.34){
computerChoice=“rock”;
}否则如果(computerChoice我认为您在选择选项时调用了compare函数。因此,您正在向函数发送用户选择。现在,您应该将其与computerChoice进行比较。这里有什么选择?正如其他人所说,您从未调用过比较函数,也从未返回过该函数的任何值。即使您这样做了,也不会返回该函数的任何值无论如何,r函数大部分时间都会失败
您可以选择以下结构:
if (choice1 === "paper") {
if (choice2 === "rock") {
return "paper wins";
} else {
if (choice2 === "scissors") {
return "scissors wins";
}
}
if (choice1 === "scissors") { //is never true because choice1 is always "paper"
if (choice2 === "rock") {
return "rock wins";
} else {
if (choice2 === "paper") {
return "scissors wins";
}
}
}
} //if choice1 === "paper" ends here
//no love for the rock?
您想要实现的目标:
if (choice1 === "paper") {
if (choice2 === "rock")
{
return "paper wins";
}
else if (choice2 === "scissors")
{
return "scissors wins";
}
}
else if (choice1 === "scissors")
{
if (choice2 === "rock")
{
return "rock wins";
}
else if (choice2 === "paper")
{
return "scissors wins";
}
}
else if (choice1 === "rock") //don't forget the rock
{
if (choice2 === "paper")
{
return "paper wins";
}
else if (choice2 === "scissors")
{
return "rock wins";
}
}
然后您必须像这样调用您的函数:
var result = compare(userChoice, computerChoice);
然后记录结果
变量。在您的示例中,您记录的计算机选择
只能是“纸”、“剪刀”或“石头”,因为这是您给它的值,而不是函数的值
由于您允许用户键入他/她想要的任何内容,您显然还必须验证他们的输入,否则if/else结构将失败。代码的行为符合设计要求——您记录的是computerChoice
,而不是compare()
返回的值。您的代码从不调用compare()
函数。简单地声明一个函数只会使它可用-它在被调用之前实际上不会做任何事情。