数据结构经典算法学习之老鼠走迷宫01
来源:互联网 发布:mks627软件 编辑:程序博客网 时间:2024/06/05 09:17
老鼠走迷宫
故事背景:老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用0来表示老鼠的行走路径,试以程式求出由入口至出口的路径。
问题思考:
老鼠的走法有上、左、下、右四个方向,在每前进一格之后就选一个方向前进,无法前进时退回选择下一个可前进方向,如此在阵列中依序测试四个方向,直到走到出口为止
代码实现:
package wj.arithmatic;public class Mourse {int maze[][] = { { 2, 2, 2, 2, 2, 2, 2 }, { 2, 0, 0, 0, 0, 0, 2 }, { 2, 0, 2, 0, 2, 0, 2 }, { 2, 0, 0, 2, 0, 2, 2 },{ 2, 2, 0, 2, 0, 2, 2 }, { 2, 0, 0, 0, 0, 0, 2 }, { 2, 2, 2, 2, 2, 2, 2 } };public void mourse() {// 迷宫图初始化for (int i = 0; i < 7; i++) {for (int j = 0; j < 7; j++) {if (maze[i][j] == 2) {System.out.print("+");} else {System.out.print(" ");}}System.out.println();}// 老鼠起点设置,游戏开始find(0, 1);}// 是否越界public boolean isIndexOut(int i, int j) {return i < 0 || j > 6;}// 迷宫路径寻找public void find(int i, int j) {// 找到任意出口,结束if (i == 5 && maze[i][j] == 1) {System.out.println("老鼠找到了迷宫的出路,出来了!");} else {// 左if (!isIndexOut(i, j - 1)) {if (maze[i][j - 1] == 0) {System.out.println("第" + times + "步从坐标(" + i + "),(" + j + ")走到坐标(" + i + "),(" + (j - 1) + ")");times++;//走过的路线填充为1,避免重复maze[i][j + 1] = 1;find(i, j + 1);}} if (!isIndexOut(i, j + 1)) {// 右if (maze[i][j + 1] == 0) {System.out.println("第" + times + "步从坐标(" + i + "),(" + j + ")走到坐标(" + i + "),(" + (j + 1) + ")");times++;//走过的路线填充为1,避免重复maze[i][j+1] = 1;find(i, j + 1);}}if (!isIndexOut(i-1, j)) {//上if (maze[i - 1][j] == 0) {System.out.println("第" + times + "步从坐标(" + i + "),(" + j + ")走到坐标(" + (i - 1) + "),(" + j + ")");times++;//走过的路线填充为1,避免重复maze[i - 1][j] = 1;find(i - 1, j);}}if (!isIndexOut(i+ 1, j)) {//下if (maze[i + 1][j] == 0) {System.out.println("第" + times + "步从坐标(" + i + "),(" + j + ")走到坐标(" + (i + 1) + "),(" + j + ")");times++;//走过的路线填充为1,避免重复maze[i + 1][j] = 1;find(i + 1, j);}}}}public static void main(String args[]) {new Mourse().mourse();}}
0 0
- 数据结构经典算法学习之老鼠走迷宫01
- 数据结构经典算法学习之老鼠走迷宫02
- 数据结构与算法之老鼠走迷宫问题
- 数据结构与算法之老鼠走迷宫问题
- 老鼠走迷宫算法
- C语言算法之老鼠走迷宫
- 一个经典Delphi算法(老鼠走迷宫问题)
- 老鼠走迷宫递归算法
- 算法之老鼠走迷宫1-找一条路
- 经典问题-老鼠走迷宫问题求解
- 经典游戏算法之走迷宫
- 老鼠走迷宫算法中的一点优化
- 【算法】老鼠走迷宫问题的解答
- 每日一算法:老鼠走迷宫(一)
- 算法思考--------老鼠走迷宫(一)
- 算法思考--------老鼠走迷宫(二)
- 电子老鼠走迷宫-搜索算法
- 数据结构与算法之走迷宫
- golang 使用 goquery 抓取 知乎周刊
- 关于垂直线和水平线判断问题
- 为什么要学习Lucene
- app 获取ios相册的图片
- 设备驱动中cdev(kernel-4.7)
- 数据结构经典算法学习之老鼠走迷宫01
- 新手请问一下,如何改变barButtonItem的identifier?
- storm trident一些总结
- 1111111111111111111111
- dp小结
- LeetCode-String to Integer (atoi)
- 扩展spring 的 xml schema,实现自己的标签
- How To Configure Static IP On CentOS 6.4
- 云帮一周问答集锦(12.19-12.25)