<分区>
例如,假设我有字符串
hunger > 80 then findFood();
或
distanceTo sun < 30 then moveAwayFrom(sun);
这不是我想要的确切语法,但有谁知道我可以制作它的简单方法,以便我可以将其传递给游戏中的实体并且他们基本上会遵循它?目前唯一想到的是制作一大块 if 语句来解析给定的字符串,但这感觉真的很低效。
我想要第二个意见,看看我是否忽略了这里非常简单的事情:/
<分区>
例如,假设我有字符串
hunger > 80 then findFood();
或
distanceTo sun < 30 then moveAwayFrom(sun);
这不是我想要的确切语法,但有谁知道我可以制作它的简单方法,以便我可以将其传递给游戏中的实体并且他们基本上会遵循它?目前唯一想到的是制作一大块 if 语句来解析给定的字符串,但这感觉真的很低效。
我想要第二个意见,看看我是否忽略了这里非常简单的事情:/
最佳答案
这不是一件容易的事!你基本上是说你需要创造一种语言。
该语言将描述所有可能的命令,然后您将解析这些命令并从中生成命令。
现在您可能会想“哎呀,我以前从未写过语言!”。那就是ANTLR进来了。它允许你为你的语言编写语法,然后生成你需要解码命令的解析器/词法分析器。您可以获得一个用于使用 ANTLER 的 IDE,称为 ANTLRWorks , 你应该查看 getting started tutorial .您真的必须克服 wiki 页面麻烦的“诅咒”并潜入这里。
在此过程中,您可能会发现更简单或更有效的方式来编码您的命令,以便您稍后可以对其进行解码。一些可能的替代方案是嵌入一种脚本语言,您将使用它来编码/解码命令,例如 Python、JavaScript 或 Lua。以前看过Lua用在游戏里,你可以看看他们说的为什么在游戏里流行here .祝你好运!
关于java - 我将如何将字符串算法转换为实际代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19617980/