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

Java 如何将字符串算法转换为实际代码?,java,algorithm,theory,Java,Algorithm,Theory,例如,假设我有字符串 饥饿>80然后找到食物() 或 到太阳的距离

例如,假设我有字符串

饥饿>80然后找到食物()

到太阳的距离<30,然后离开(太阳)

这不是我想要的确切语法,但是有谁知道我可以用一种简单的方法来实现它,这样我就可以在游戏中把它传递给一个实体,而他们基本上也会这样做?目前唯一让人想到的是,生成一大块if语句来解析给定的字符串,但这感觉真的很不有效


我想听听第二种意见,看看我是否忽略了一些非常简单的事情://

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

该语言将描述所有可能的命令,然后您将从这些命令解析并生成命令

现在你可能会想:“哎呀,我以前从来没有写过语言!”。这就是我们要做的。它允许您为自己的语言编写语法,然后生成解码命令所需的解析器/词法分析器。您可以获得一个名为ANTLER的IDE,您应该查看。你真的必须克服你在维基页面上的“诅咒”麻烦,然后潜入这里


在此过程中,您可能会意识到更容易或更有效的方法来编码您的命令,以便以后可以解码它们。一些可能的替代方案是嵌入一种脚本语言,您将使用该语言对命令进行编码/解码,如Python、JavaScript或Lua。我以前见过Lua在游戏中使用,你可以阅读他们关于为什么它们在游戏中流行的声明。祝你好运

这不是一项容易的任务!你基本上是说你需要创造一种语言

该语言将描述所有可能的命令,然后您将从这些命令解析并生成命令

现在你可能会想:“哎呀,我以前从来没有写过语言!”。这就是我们要做的。它允许您为自己的语言编写语法,然后生成解码命令所需的解析器/词法分析器。您可以获得一个名为ANTLER的IDE,您应该查看。你真的必须克服你在维基页面上的“诅咒”麻烦,然后潜入这里


在此过程中,您可能会意识到更容易或更有效的方法来编码您的命令,以便以后可以解码它们。一些可能的替代方案是嵌入一种脚本语言,您将使用该语言对命令进行编码/解码,如Python、JavaScript或Lua。我以前见过Lua在游戏中使用,你可以阅读他们关于为什么它们在游戏中流行的声明。祝你好运

这不是一项容易的任务!你基本上是说你需要创造一种语言

该语言将描述所有可能的命令,然后您将从这些命令解析并生成命令

现在你可能会想:“哎呀,我以前从来没有写过语言!”。这就是我们要做的。它允许您为自己的语言编写语法,然后生成解码命令所需的解析器/词法分析器。您可以获得一个名为ANTLER的IDE,您应该查看。你真的必须克服你在维基页面上的“诅咒”麻烦,然后潜入这里


在此过程中,您可能会意识到更容易或更有效的方法来编码您的命令,以便以后可以解码它们。一些可能的替代方案是嵌入一种脚本语言,您将使用该语言对命令进行编码/解码,如Python、JavaScript或Lua。我以前见过Lua在游戏中使用,你可以阅读他们关于为什么它们在游戏中流行的声明。祝你好运

这不是一项容易的任务!你基本上是说你需要创造一种语言

该语言将描述所有可能的命令,然后您将从这些命令解析并生成命令

现在你可能会想:“哎呀,我以前从来没有写过语言!”。这就是我们要做的。它允许您为自己的语言编写语法,然后生成解码命令所需的解析器/词法分析器。您可以获得一个名为ANTLER的IDE,您应该查看。你真的必须克服你在维基页面上的“诅咒”麻烦,然后潜入这里



在此过程中,您可能会意识到更容易或更有效的方法来编码您的命令,以便以后可以解码它们。一些可能的替代方案是嵌入一种脚本语言,您将使用该语言对命令进行编码/解码,如Python、JavaScript或Lua。我以前见过Lua在游戏中使用,你可以阅读他们关于为什么它们在游戏中流行的声明。祝你好运

你可以写一篇简单的文章。你可能会因为思考而变得古怪,但请想想你自己的理智。当然有。类似的东西将解析语言语句。您还可以在Java游戏中嵌入一些已经存在的脚本语言,Python或JavaScript是一个很好的起点。这方面的技术术语是“DSL”,它代表“领域特定语言”。Java不为嵌入式领域特定语言(EDSL)提供任何特殊支持,因此这个问题基本上相当于“我如何编写解析器?”(或者“我如何编写解释器?”)。这是你在计算机科学课程中会学到的东西之一,你也可以用谷歌搜索它。你可以只写一个简单的。你可以通过思考变得古怪,但请想想你自己的理智。当然有。类似的东西将解析语言语句。您还可以在Java游戏中嵌入一些已经存在的脚本语言,Python或JavaScript是一个很好的起点。这方面的技术术语是“DSL”,它代表“领域特定语言”。Java不为嵌入式领域特定语言(EDSL)提供任何特殊支持,所以这个问题基本上相当于“如何编写解析器?”(或“h”)