我想给用户一个问题。向左,向右或继续直行。如果用户在javascript prompt
方法中“直截了当”。其他两种方法都是假的 - 游戏结束。什么时候游戏结束我希望用户再次制作这个故事。
var prompt = propmt("Where will you go? Left, right or continue straight?");
if (prompt === "Left") {
confirm("Game over, the tigers will eat you!");
} else if (where === "Straight") {
confirm("You've won!");
} else {
confirm("Game over, you've fallen to the river!");
}
如果gameOver比我想要用户重试故事。 谢谢!
链接到JsFiddle https://jsfiddle.net/grqxc5kr/
答案 0 :(得分:1)
将其嵌入循环中。
这里也有一些风格意见。
您可能希望将变量“prompt”重命名为它实际表示的内容,这是提示函数调用的返回值,或者更简单地说是用户输入。
在您的条件中,您只是将该变量的值与潜在的选择进行比较。这是用switch / case块替换if / else if / else的好地方。如果您根据用户未来的输入选择不同的操作,也可以更容易扩展。这不仅可以提高开发速度,而且在大多数语言中,这也会带来轻微的性能提升。
答案 1 :(得分:1)
这样的事情会起作用:
function game() {
while (true) {
var prompt = prompt("Where will you go? Left, right or continue straight?");
if (prompt === "Left") {
confirm("Game over, the tigers will eat you!");
} else if (prompt === "Straight") {
confirm("You've won!");
return
} else {
confirm("Game over, you've fallen to the river!");
}
}
}
这不是这种方式(注意while(true)),但这会让你得到最终结果。
更好的方法:
function game() {
var prompt = ""
while (prompt != "Left" || prompt != "Straight") {
prompt = prompt("Where will you go? Left, right or continue straight?");
if (prompt === "Left") {
confirm("Game over, the tigers will eat you!");
} else if (prompt === "Straight") {
confirm("You've won!");
} else {
confirm("Game over, you've fallen to the river! Let's play again!");
}
}
}
答案 2 :(得分:0)
递归会做你想要的:
function getDirection(){
var input = prompt("Where will you go? Left, right or continue straight?");
if (input === "Left") {
confirm("Game over, the tigers will eat you!");
getDirection();
} else if (input === "Straight") {
confirm("You've won!");
} else {
confirm("Game over, you've fallen to the river!");
getDirection();
}
}
getDirection();