0

我正在开发一个“电子游戏”来为我的大学教授编程。

该视频游戏是基于关卡的,其中每个关卡都与编程主题(变量、数据结构等)有关,并且鉴于该主题,该关卡将是拼图或 2d 平台游戏,因此例如在条件关卡中,它将是一个 2d 平台游戏,用户必须通过 gui 控制台介绍指令以使角色检查是否有东西挡住了去路或类似的东西。

我需要的是一些代码,给定该控制台中的输入,它将检查语法和语义错误。输入将基于选择的语言(我在想 C#),但对此没有 100% 的把握。(我的意思是我正在考虑教 C#,但我可以教任何其他语言)

现在我正在构建控制台,但这对我来说非常困难,因为我不是高级程序员。

我一直在互联网上搜索一些解析器或只检查这两个东西的东西,例如返回布尔值,但我只找到了像 GOLD 或 ANTLR 这样的编译器 - 编译器的东西,我认为它不是必要的规模的项目。

我怎么能开发这样的解析器,或者你能指点我一个吗?

编辑:也许我想要完成的一个很好的例子是codecademy的控制台或tryhaskell.org控制台

4

2 回答 2

1

您可能对 Microsoft的Roslyn 项目感兴趣。它允许您为 C# 编写交互式命令行。

于 2013-11-07T21:47:21.713 回答
0

所以用户输入看起来if (IsPlatformAhead("2 meters")) Jump();对吗?我认为您实际上应该使用比解析器更严重的东西,因为用户可以编写这样的有效查询:

var platform = IsPlatformAhead("2 meters");
if (platform)
  Jump();

您不仅需要解析,还需要执行查询。您要么使用 MS (Roslyn) 的东西,要么使用 Mono(开源)。

于 2013-11-08T06:58:28.247 回答