gpt4 book ai didi

c# - 对泥浆/交互式小说解析器应该采用的方法感到困惑

转载 作者:行者123 更新时间:2023-11-30 13:23:06 25 4
gpt4 key购买 nike

关闭。这个问题是off-topic .它目前不接受答案。












想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。

9年前关闭。




Improve this question




让我想编程的第一件事就是创建一个多人文本游戏。当我意识到,至少在当时对我来说,编写一个智能解析器是多么复杂时,我被这个想法吓跑了。

所以现在我又开始思考这个问题了,我已经尝试对这个主题进行大量研究。事实证明,它似乎比我想象的要复杂得多,而且我偶然发现了诸如词法分析、标记化和解析之类的术语,我以前只知道后者。我认为词法分析领域是我想要寻找的。

因此,与其尝试创建我自己的词法分析器和解析器,我认为它们非常困难且容易出错,并且大多数人都指示要避开,我想我会找到一个好的词法分析器和解析器生成器来使用,这应该会做对我来说所有繁重的工作,我可以专注于我想要的语法。我也听到很多人说想要做这种事情的人应该简单地使用 Inform .

当然,我认为 Inform 很酷,但 C# 是我选择的语言,我喜欢它允许我自由支配我认为 Inform 提供的内容。我对创建多人文本游戏的所有组件和框架比对任何一个特定的最终结果更感兴趣,因此我最喜欢使用标准编程语言的想法。

一段时间以来,我一直在尝试为 C# 寻找一个好的词法分析器/解析器生成器,但对人们给出的评论似乎提供的一切并不满意。

C# 的 antlr 似乎不发达,而且大多是事后才想到的。
我已经尝试理解 GPLEX 和 GPPG,但到目前为止,尽管阅读了很多文档并尝试阅读很多关于词法分析的内容,但它们现在对我来说太困惑了。

关于词法分析的整个过程,我脑子里有很多概念,但是当面对词法分析器和解析器时,我想我真的不知道这些应该如何融入我的实际代码中。

我想用名词短语和动词短语构建一个简单的英语语法,并且能够在游戏开发和扩展时从数据库中动态添加和准备好名词和动词列表。

我想我觉得我对我一直在尝试做的这个主题的研究结果缺乏信心。

老实说,在这一点上,根据我的研究创建我自己的词法分析器和解析器概念的想法似乎比使用我读过的任何词法分析器/解析器生成器更具吸引力。

最佳答案

首先,一些元建议。这对于 StackOverflow 来说可能不是一个好问题,因为它与特定的技术问题无关。您可以考虑在 Programmers.StackExchange.com 上提出类似的问题。

回答您的问题:我同意 tallseth;这取决于你想在这里提高什么技能。人们偶尔会问我为什么不造一艘船,因为我相当得心应手,喜欢航海。因为如果你喜欢在你的车库里有一艘未完工的船两年,你应该只 build 一艘船。如果你想扬帆,就扬帆远航。如果你想造一艘船,那就造一艘船。但是不要因为你想航行而造船。想写文字冒险,就学Inform7;它是世界上最棒的文字冒险工具。如果您想学习如何制作词法分析器和解析器,请不要乱用解析器生成器。制作词法分析器和解析器。

如果您正在对一种新的编程语言进行原型(prototype)设计并且想要快速上手,那么解析器生成器非常有用。但是编程语言语法可以具有非常好的特性,使它们能够以自然语言不具备的方式自动生成解析器。如果您使用解析器生成器方法,您可能会花费与构建语法一样多的时间与解析器生成器作斗争。

既然你是这方面的初学者,我建议你回顾一下文字冒险的历史。首先编写一个词法分析器和解析器,它可以解析两个词的命令:“go north”、“get Sword”、“drop brick”等等。这将为您提供足够的灵 active ,然后您可以开始解决文本冒险设计中的其他问题:如何表示对象和位置。从小处着手;如果你可以制作一个玩家可以拿起和放下元素的两室游戏,那么你就成功了。

简而言之,我强烈鼓励你跟随你的直觉;编写自己的词法分析器和解析器非常有趣,如果您从小处着手并逐步发展,实际上并不难。

关于c# - 对泥浆/交互式小说解析器应该采用的方法感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14536906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com