嘿,我参加了当地的编程比赛,他们问我这个问题,我不能这样做,请帮我解决这个问题。
编写一个程序,从一个迷宫大小的文件加载,然后加载迷宫本身。 为了模拟迷宫,我们使用指定起始单元格的字符“S”,“。”指定空闲单元格,“#”是墙,“F”是最终单元格。 编写一个程序,找到从起始单元到最终单元的路径。 您可以认为在迷宫中有一个服从命令的机器人,因此对于以下迷宫,机器人应该接收以下命令:向上,向上,向右,向右,向下,向下。
迷宫1文本文件
5 5
#####
#...#
#.#.#
#S#T#
#####
迷宫2文本文件
4 5
#.#.#
#.#.#
#S#T#
#####
一般编写程序(迷宫最大输入最多可为200x200)。
非常感谢帮助。我只是一个崛起的sophmore,所以如果你能提供我的代码,那么我就能理解它,而且他们会自己再做一次。
答案 0 :(得分:3)
如果您不知道要搜索的内容: http://en.wikipedia.org/wiki/Pathfinding#Sample_algorithm 这包含了很多信息: http://www.astrolog.org/labyrnth/algrithm.htm
答案 1 :(得分:2)
查找路径的一种方法:
一旦队列为空,迷宫中的每个空闲单元(可以从目的地到达)将具有到达目的地的最短路径中的步数。如果一个单元格没有计数,则没有从它到目的地的路径。
如果起始单元格有计数,
我会告诉你如何加载迷宫。这是所有这一切的简单部分。
答案 2 :(得分:0)
这里的代码太多了,但解决迷宫最常见的方法是向一个方向开始,每转右一圈就可以向右转。
只要开始和退出位于四个围墙之一,就可以保证工作。对于没有沿着墙壁开始和退出的迷宫,它是递归练习。
根据这一点作为起点,看看你能想出什么样的代码!
HTH, 詹姆斯