我刚开始学习JavaScript,我正在努力改进我制作的“Rock,Scissors,Paper”游戏(见下面的代码)。
我尝试在没有最后一个函数input()的情况下构建游戏。但我了解到我只能在函数中使用“return”。当我使用console.log()打印函数时,它没有input()函数。
我想学习如何使用input()函数,以及能够在input()中调用gamePlay()。任何帮助将不胜感激。
var gamePlay = function (userGameChoice) {
var computerChoice = Math.random(0, 1);
if (computerChoice < 0.34) {
computerChoice = "rock";
} else if (computerChoice <= 0.67) {
computerChoice = "paper";
} else {
computerChoice = "scissors";
}
var compare = function (choice1, choice2) {
if (choice1 === choice2) {
return "The result is a tie!";
}
if (choice1 === "rock") {
if (choice2 === "scissors") {
return "rock wins";
} else {
return "paper wins";
}
}
if (choice1 === "paper") {
if (choice2 === "rock") {
return "paper wins";
} else {
return "scissors wins";
}
}
if (choice1 === "scissors") {
if (choice2 === "rock") {
return " rock wins";
} else {
return "scissors wins"
}
}
}
compare(userGameChoice, computerChoice);
}
var input = function (userChoice) {
if (userChoice === "rock") {
return gamePlay("rock");
} else if (userChoice === "paper") {
return gamePlay("paper");
} else if (userChoice === "scissors") {
return gamePlay("scissors");
} else {
return "Invalid input";
}
}
input(prompt("Do you choose rock, paper or scissors?"));
答案 0 :(得分:1)
您的gamePlay
函数未返回值。它调用compare
确实返回一个值,但由于gamePlay
没有返回语句,它实际返回undefined
。
如果你console.log(gamePlay("rock"));
,你会看到undefined
。
附注:输入功能也可以使用switch语句而不是if / then / elses。
答案 1 :(得分:-1)
我想你想做这样的事情:
var options = ["rock", "scissors", "paper"];
var userinput = prompt("Do you choose rock, paper or scissors?");
var gameResult = "Invalid Input";
if (options.indexOf(userinput) > -1) {
gameResult = gamePlay(userinput);
}
alert(gameResult);
这将获取用户输入并将其与有效选项列表进行比较。如果它存在(>-1
),那么它将运行gamePlay
方法,将结果存储在变量gameResult