【发布时间】:2015-12-28 20:02:36
【问题描述】:
好的,所以这可能是重复的,但我个人没有在互联网或 Stackoverflow 上看到任何关于此的内容。
我正在开发一个游戏项目,并且一直在尝试制作基于文本的游戏。
在这个游戏中,我有一个 switch 语句,用于当用户输入命令时。
到目前为止,我已经有了 Inventory 和 Look(环顾环境)的东西,但是如何在 switch 语句中处理特定的东西呢?
例如:
submit = function(input) {
switch(input) {
case "LOOK":
lookaround();
break;
case "LOOK AT" + item:
look();
}
}
这是我遇到问题的 LOOK AT 行。我不知道如何使字符串以这种格式工作,除非我对每个项目都有单独的案例,例如案例“看橙色”或案例“看树”。
我希望我已经足够彻底地解释了这一点。谁能给我一些建议?
谢谢
编辑
我认为重要的是要注意用户正在将输入输入到输入框中,因此输入的值将是一个字符串。
如果对查看我制作的代码有帮助,请在下面的 cmets 中告诉我。
编辑
感谢您的帮助!
我使用了正则表达式(感谢@red-devil)和混合切片。现在完美运行!
【问题讨论】:
-
您正在尝试定义解析器,因此您需要一种将输入拆分为标记的方法。更高级的方法是编写一个完整的词法分析器as you might in this example。这里的想法是您可以定义您的程序可以理解的语法并处理
look at orange或look up之类的情况。您可能希望查看 Z-Machine 作为以前如何完成此操作的示例。 -
1 问题是如何处理无限多的情况。但首先,如果可能的话,摆脱
"LOOK AT" + item并使用case item。如果情况只是 LOOK,请在进入 switch 之前处理它。有无数个案例吗? -
感谢@RedDevil!这帮助很大!
标签: javascript string input switch-statement case