小编Cop*_*ush的帖子

用Java创建迷宫求解算法

我被分配了在Java中创建迷宫求解器的任务.这是作业:

Write an application that finds a path through a maze.  
The maze should be read from a file.  A sample maze is shown below.

O O O O O X O
X X O X O O X
O X O O X X X
X X X O O X O
X X X X O O X
O O O O O O O
X X O X X X O
Run Code Online (Sandbox Code Playgroud)

字符"X"表示墙或阻挡位置,字符"O"表示打开位置.您可以假设迷宫的入口始终位于右下角,出口始终位于左上角.您的程序应将其输出发送到文件.如果找到路径,则输出文件应包含路径.如果未找到路径,则应将消息发送到该文件.请注意,迷宫可能有多个解决方案路径,但在本练习中,您只需要找到一个解决方案,而不是所有解决方案.

您的程序应该使用堆栈来记录它正在探索的路径,并在它到达阻塞位置时回溯.

在编写代码之前,请务必编写完整的算法.随意创建任何其他类,以帮助您完成任务.

Here's my Algorithm: …
Run Code Online (Sandbox Code Playgroud)

java algorithm maze

7
推荐指数
2
解决办法
6万
查看次数

使用堆栈遍历并解决迷宫 - Java

所以我正在尝试创建一个迷宫求解器程序,它可以解决X和O的迷宫问题.我想要做的是创建一个Point类,这样我就可以创建一个二维点数组,这将允许打印到输出页面以及实现堆栈相对简单.

我想在实际程序中实现的最简单的一般思想算法我认为应该是:

1) Move forward
2) Are you at a wall?
2a) If yes, turn left
3) Are you at the finish?
3a) If no, go to 1
3b) If yes, solved
Run Code Online (Sandbox Code Playgroud)

但是我无法想出更深入的算法,也无法获得我的Points类.我知道对于Points我应该设置X坐标,并设置Y坐标以及两者的getter.你认为我需要比这两种更多的方法吗?比如,我应该创建一个传递x坐标的方法,并将y坐标作为参数,这样我就可以将它们作为一个一起推送,而不是单独设置x和y?

这是一个样本迷宫的样子,你从右下角开始尝试遍历左上角,X为墙壁,O为迷宫中的开放空间:

O O O O O X O
X X O X O O X
O X O O X X X
X X X O O X O
X X X X O O X
O O O O O O O 
X X O X …
Run Code Online (Sandbox Code Playgroud)

java stack maze

6
推荐指数
1
解决办法
5651
查看次数

标签 统计

java ×2

maze ×2

algorithm ×1

stack ×1