-2

在非常有用的网站 www.codecademy.com 的帮助下,我目前正在学习 Javascript。我最近设法制作了一个简单的石头剪刀布游戏,我决定尝试改进它。

基本思想是脚本提示输入,如果它是“Rock”、“Paper”或“Scissors”,那么它会随机化一个响应,等等。

我目前正在尝试添加一个系统,以便如果用户在提示窗口中键入“Rock”、“Paper”或“Scissors”以外的任何内容,他们会收到错误并被要求再次回答。是否有 if 语句或任何类似的东西可以让我这样做?

基本上

if(userInput isNot "Rock","Paper" or "Scissors"){

prompt again;

} else {
continue;
}

对不起,如果我不称职,我是新手。

谢谢你的帮助。

4

3 回答 3

2

您可以像这样简单地检查每个有效输入:

if(!(userInput == "Rock" || userInput == "Paper" || userInput == "Scissors")) {
   ...
}

根据德摩根定律,这相当于:

if(userInput != "Rock" && userInput != "Paper" && userInput != "Scissors") {
   ...
}

或者可以将有效输入存储在数组中并检查是否userInput在该数组中:

var validInputs = [ "Rock", "Paper", "Scissors" ];
if(validInputs.indexOf(userInput) == -1) {
   ...
}

请注意,.indexOf某些较旧的浏览器不支持此功能。请参阅ECMAScript 5 兼容性表。如果你碰巧在使用 jQuery,你可以使用inArray(许多其他 JavaScript 工具包也有类似的功能):

var validInputs = [ "Rock", "Paper", "Scissors" ];
if($.inArray(validInputs, userInput)) {
   ...
}
于 2013-11-13T21:21:10.523 回答
0

基本上:

if(userInput != "Rock" && userInput != "Paper" && userInput != "Scissors") {
    .....   
} else {
    .....
}
于 2013-11-13T21:20:24.893 回答
0

创建一个数组并测试以查看答案是否存在于数组中。

var ans = ["Rock","Paper","Scissors"];
if(ans.indexOf(userInput) == -1) {
    // prompt again to user
} 
else {
    // continue...
}
于 2013-11-13T21:27:15.153 回答