有限状态自动机中的Pac-Man表示

3
考虑一个类似于Pac-Man的游戏,我们想用FSA图来表示它。我们有一个迷宫(表格),其中随机放置着浆果。目标是吃掉迷宫中的所有浆果。我们需要考虑以下控制命令:
GOAHEAD,LEFT,RIGHT,CHECKBERRY(检查Pac-Man前方是否有浆果),EAT和OFF-MAZE。
我们需要最多10个关卡...并且请记住我们不能在一行中有超过一个空洞。 谢谢

编辑: alt文本 http://img338.imageshack.us/img338/2479/graphp.jpg

好的,我创建了图表,但找不到克服间隙的方法。例如:在某些浆果行之后的迷宫中,突然出现一个空洞,下一个浆果就在空洞右下方。因此,即使我向左或向右转,checkberry命令也不会返回TRUE值。因此,必须有一种方法让Pac-Man移动到空洞方块而不食用,但如何决定移动到前面还是其他方块?


是的,这是一个教程练习,我卡住了!!!你有什么想法吗? - solidsn2004
当你有特定问题时,请提出具体的问题。强迫别人帮你完成作业是不道德的。 - Spoike
好的,我已经创建了图表,但是我找不到克服间隙的方法。例如: 在迷宫中,在某一行浆果后突然出现了一个间隙,下一个浆果就在间隙的正下方。因此,我不确定我的图表会是什么样子,因为即使我向左或向右转,checkberry命令也不会返回TRUE值。因此,必须有一种方法让吃豆人移动到间隙方块而不吃掉它,但是它将如何决定是移动到前面还是其他地方? - solidsn2004
我试图从JPEG文件上传我的图表,但它说我需要10个声望,因为我是新用户!!! - solidsn2004
顺便提一下,你可以使用GraphViz绘制FSA图形 http://www.graphviz.org/Gallery/directed/fsm.html - Spoike
显示剩余2条评论
2个回答

2
如果你正在设计一个状态图,尝试首先确定你的状态机将有哪些状态,而不是给这些状态编号。
这里有一个简单的例子,你的“吃豆人”需要行走、检查和吃东西。因此,有三种状态IS_WALKINGIS_CHECKINGIS_EATING。遍历直线并吃东西的图表可能类似于下面的图。虽然我不确定你使用的是什么图表符号,但希望这能为你解决一些问题。
                     GO_AHEAD
       +------------------------------------+
       |                                    |
       v                                    |
+----------------+      false            +------------+
| IS_CHECKING    |---------------------->| IS_WALKING |
+----------------+                       +------------+
| E: CHECK_BERRY |                          ^
+----------------+                          |
       |                                    |
       | true                               |
       v                                    |
 +-----------+               EAT            |
 | IS_EATING |------------------------------+
 +-----------+

转换在你为状态取适当的名称后变得更加自然和容易理解。一个好的状态名称的例子是清晰地说明状态机在某一特定时刻正在做什么。

1

如果您正在Stackoverflow上寻求此类问题的帮助,则显然需要看看自己在做什么。您的问题需要更具体。您是否遇到特定编码问题,或者您不知道从哪里开始?这是否意味着一个琐碎的练习或一个完整的项目?

尝试制作一个思维导图,了解您想要做什么,然后查看您当前拥有的技能可以从那里去哪里。一旦遇到实际问题,请回来咨询。


这是一个教程练习,而不是项目!在这部分中没有编码。它只是使用有限状态机进行表示。我只需要创建一个转换图(根据任何人的意见,有许多不同的表示方式)。问题很简单。我很快就会上传一个样本照片,让你尝一尝。因为我是第一次使用这个论坛,所以我不知道是否可能。 - solidsn2004
好的,抱歉,看起来我不知道你想要什么。我猜你想要一个程序的'思维导图'。 - Jonno_FTW

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接