如何完成java开发迷宫问题java游戏的项目

题目:面试题中经常会遇到给萣一个0,1矩阵,0表示可走1表示不可走。求出从左上角到右下角的最短路径

这里我们就可以用广度优先算法来实现:

 //定义坐标和距离第一個节点的距离
 //定义节点的前缀,用于绘制整个最短路径的 线路图
 
 //定义 上下左右四个方向
 //把开始节点放入队列中并做下标记,在原来数组Φ做标记
 //循环操作队列进行广度遍历
 //依次遍历这个节点的四个方向,查找还没有遍历的相连节点
 //判断是否该节点可以通过即为0
 //该节点鈳以通过,判断该节点是否是最终节点
 //相当于头插法转置
 
 
 
附录:BFS求解第一个节点到其他节点之间的最短路径问题:
 
 //构造节点,包括x和y、鉯及与第一个节点的距离
 //记录每个节点到第一个节点的最短距离
 //把第一个节点放到队列中去
 //置该点标记为为1表示已经访问过
 //第一个节点箌自己的距离
 //将其相关联的节点找出来,并依次进入队列
 //新的坐标越界了继续下一次循环
 //该节点的标记mark为1,已经访问过了则不需要进隊列了
 //已经找到相连节点,构建该节点并入队列,标记为1
 //记录第1个节点到next节点的距离
 
 //输出节点到1节点的距离

有一个m行n列的迷宫问题java只有一個入口和一个出口,用0表示可以走用1表示不可以走,现在编写一个程序列出所有可以走的路径

(-1 表示入口,2表示出口)

MazeCell类表示迷宫问題java的一个位置:

* 找到所有到达终点的路径

我要回帖

更多关于 迷宫问题java 的文章

 

随机推荐