我如何将字符串算法转换为实际代码?

时间:2013-10-27 12:23:33

标签: java algorithm theory

例如,假设我有字符串

hunger > 80 then findFood();

distanceTo sun < 30 then moveAwayFrom(sun);

这不是我想要的确切语法,但有没有人知道我能做到的一个简单方法,以便我可以将它传递给游戏中的实体,他们基本上会遵循这个?目前唯一想到的是制作一个解析给定字符串的if语句块,但这感觉真的非常无效。

我想要第二个意见,只是为了看看我是否忽视了一些非常简单的事情:/

1 个答案:

答案 0 :(得分:3)

不是一件容易的事!你基本上说的是你需要创建一种语言。

此语言将描述您将解析并生成命令的所有可能命令。

现在你可能会想到自己“哎呀,我以前从未写过一种语言!”。这就是ANTLR的用武之地。它允许您为您的语言编写语法,然后生成解码命令所需的解析器/词法分析器。您可以使用IDE来处理名为ANTLRWorks的ANTLER,您应该查看getting started tutorial。你真的必须克服wiki页面的“诅咒”并潜入这里。

在此过程中,您可能会实现更简单或更有效的方法来对命令进行编码,以便以后对其进行解码。一些可能的替代方法是嵌入脚本语言,您将使用它来编码/解码命令,例如Python,JavaScript或Lua。我之前看过Lua在游戏中使用过,你可以阅读他们在游戏here中受欢迎的说法。祝你好运!