游戏术语词典

Game terms dictionary

我是 javascript 的新手,但我正在开发基于文本的角色扮演游戏。我正在尝试弄清楚如何做到这一点,以便如果用户输入 'go' 或 'walk' 或 'run' 或 'march' 或类似的内容,它将 运行 相同的命令...而不是仅仅使用“或”做一堆检查,我更愿意在一个单独的文件中有一个术语词典,我可以检查和 return 一个术语。我该怎么做呢?我可以使用常规数组吗?如果是,我如何在 javascript 中搜索它?

我想要类似的东西

dictionary:
    ["go"]:["go"];
    ["walk"]:["go"];
    ["run"]:["go"];
    ["march"]:["go"];

我也意识到我可能会以完全错误的方式解决这个问题,所以如果您有任何提示,我们将非常欢迎。

一种方法是这样的:

var mydict = [
    {
        words: ['go','walk','run','sprint','move'],
        task: 'move'
    },
    {
        words: ['eat','consume'],
        task: 'eat'
    }
];

然后遍历它并检查您的输入命令是否在任何对象的 words 数组中。

您可以在单独的 JS 文件中使用对象。

什么是 JavaScript 对象? JavaScript 对象是 key/value 对的集合。我强烈建议您了解 JavaScript 对象,因为在 JavaScript 中几乎所有东西都是对象。

一个简单的对象如下所示:

var myCommads = {
        "go":"go",
        "walk":"go",
        "run":"go",
        "march":"go"
}

对象是基于键值的。您可以通过它们的匹配键访问这些值。

myObject['walk']

会给你字符串 "go".

假设用户输入命令:

var command = prompt("Please give your command", "");

现在您检查命令是否在您的对象中:

if(typeof myCommands[command] == "undefined"){
        alert("Invalid command");
}
else{
      var realCommand = myCommands[command];
      //now do what you want with the command, saved in the variable "realCommand"
}

我意识到对于 JavaScript 经验不足的人来说,我提供的信息可能太多了,但要详细解释所有这些,我需要更多时间并且需要写更长的答案。

完全理解我的答案的最好方法是阅读一些教程:

提示函数:JS prompt

警报功能:JS Alert

JavaScript 个对象:JS Objects