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

标签 java algorithm theory

<分区>

例如,假设我有字符串

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/

相关文章:

algorithm - 将平面网格变形为球体

regex - Perl 正则表达式方言/实现是如何调用的?

c# - 部分覆盖子类中的虚拟自动属性

java - 如何告诉 ant 使用特定的 javac 可执行文件进行构建?

java - Java中如何终止匿名线程

java - 是否有可能为 2^14 个音频帧实现 65 微秒 FFT?

java - MongoSocketOpenException - 连接到 MongoDB 时出现问题

java - 使得元素之和小于或等于 k ​​的方式总数

algorithm - 是否有提供输出 [1, 2, 3, 12, 23,...] 的函数?

computer-science - "P=NP?"是什么?为什么这是一个如此著名的问题?