java代码老鼠走迷宫案例

public class MiGong{//编写一个main方法public static void main(String[] args) {//思路// 1. 先创建迷宫,用二维数组表示 int[][] map = new int[8][7];//2.先规定 map 数组的元素值: 0 表示可以走 1 表示障碍物int[][] map = new int[8][7];//3.将最上面的一行和最下面的一行,全部设置为1for (int i = 0;i < 7;i++) {map[0][i] = 1;map[7][i] = 1;}//4.将最前面和最后面的一行全部设置为1for (int i = 0;i < map.length;i++) {map[i][0] = 1;map[i][6] = 1;}map[3][1] = 1;map[3][2] = 1;//打印地图for (int i = 0;i < map.length;i++) {for (int j = 0;j < map[i].length;j++) {System.out.print(map[i][j] + "  ");}System.out.println(" ");                    }//调用老鼠类T mouse = new T();//调用老鼠迷宫方法mouse.findWay(map,1,1);//打印地图System.out.println("———————打印老鼠找路的情况————————");for (int i = 0;i < map.length;i++) {for (int j = 0;j < map[i].length;j++) {System.out.print(map[i][j] + "  ");}System.out.println(" ");                 }}
}class T {//使用递归回溯的思想来解决老鼠出迷宫// 思路// 1.findWay方法就是专门来找出迷宫的路径// 2.如果找到,那就返回ture,否则返回false// 3.map 就是二维数组,即表示迷宫// 4.i,j就是老鼠的位置,初始化的位置为1(1,1)// 5.因为我们是递归的找路所以我先规定map数组各个值的含义//     0  表示可以走 1表示障碍物 2 表示可以走 3表示走过,但是走不通是死路// 6.当map[6][5] = 2 就说明找到通路,就可以结束,否则就继续找。// 7.先确定老鼠找路策略 下 -> 右 -> 上 -> 左public boolean findWay(int[][] map,int i,int j){if (map[6][5] == 2) {return true;}else{if (map[i][j] == 0) {//表示当前位置可以走//假设这个位置可以走通map[i][j] = 2;//使用找路的策略下-右-上-左if (findWay(map,i+1,j)) {return true;}else if (findWay(map,i,j+1)) {return true;}else if (findWay(map,i-1,j)) {return true;}else if (findWay(map,i,j-1)) {return true;}else{//证明上下左右都走不通然后回溯到上一层,他现在本位置会变成3map[i][j] = 3;return false;}}else{//否则就是 1、2、3return false;}}}
}

结果如下:

java代码老鼠走迷宫案例相关推荐

  1. java递归老鼠走迷宫_递归算法求老鼠走迷宫(C语言)

    /*说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁, 使用1来表示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法老鼠的走法有上.左.下.右四个方向,在每前进一格之后就选 ...

  2. java递归老鼠走迷宫_老鼠走迷宫----------递归问题

    老鼠走迷宫是一个典型的递归的问题,写几个这样的题才可以充分理解递归的过程. 写递归的过程有几点需要注意: (1)递归结束的条件 (2)递归过程的脉络,即逻辑要清晰. / // // 在迷宫中显示老鼠能 ...

  3. java 迷宫代码_老鼠走迷宫代码 JAVA

    展开全部 //老鼠走迷宫程序 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Maze1 ...

  4. Java算法六:老鼠走迷宫

    老鼠走迷宫(Mouse) 问题说明: 老鼠走迷宫是循环求解的基本类型,我们在二维数组中用2来表示迷宫的墙壁,使用1来表示老鼠的行走路径,并用程序求出从入口到出口的距离. 问题解答: 实际上是使用回溯算 ...

  5. 老鼠走迷宫-java

    推荐韩老师课程:https://www.bilibili.com/video/BV1fh411y7R8?t=260&p=225 老鼠走迷宫-Maze.java package lbxx.day ...

  6. 米奇小老鼠走迷宫问题代码以及注释

    代码浅析已在代码注释里,代码如下: /**@author 旧梦吖*@version 1.0* 走迷宫问题*/ public class Maze {public static void main(St ...

  7. java老鼠走迷宫算法_老鼠走迷宫java算法

    说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法老鼠的走法有上.左.下.右四个方向,在每前进一格之后就选一个 ...

  8. C语言老鼠走迷宫(单路径)算法详细讲解

    最近在学习C语言的一些经典算法,其中遇到了一点困难,导致卡进度了.琢磨了很久,在绘制流程图时,突然灵感大开理解了,老鼠走迷宫算法的奇妙.所以写了这个,一来是方便以后右和我类似的同学自学时,遇到这个问题 ...

  9. 【手把手带你学JavaSE】(项目展示)老鼠走迷宫和八皇后问题

    目录 前言 老鼠走迷宫 MiGong.java 八皇后问题 Queen.java 前言 大家还记得当初C语言我们一起学习的递归吗?说好的要实现老鼠走迷宫和八皇后问题!他来了!!! 老鼠走迷宫 MiGo ...

最新文章

  1. 官宣!这些北京高校,去雄安!
  2. mysql多实例(多个配置文件方式)
  3. 1 State Hook
  4. 115网盘linux 下载速度慢,linux vps 上 下载115网盘 的方法
  5. 按图索骥:SQL中数据倾斜问题的处理思路与方法
  6. Octave入门基础
  7. python内存技巧_使用__slots__节省python内存技巧
  8. python学了有什么用-python学来有什么用
  9. Unity web player无法正常使用
  10. Origin 2019b 图文安装教程及下载(附安装包)
  11. java调用海康人脸识别机5603的sdk的使用总结(三)
  12. 用最简单的方法解决:linux系统重启网络delaying initialization错误
  13. 小程序云开发(四):云数据库的文件操作之上传头像图片,获取云图片
  14. 基于STM32F103C8T6的充电桩计费系统(程序+原理图+PCB+论文)
  15. webrtc QOS方法四.2(拥塞算法学习)
  16. 【面试总结】面试前不得不刷一下的硬核总结。
  17. 2873-36-1,Gancidin W,CYCLO(L-LEU-L-PRO),cyclo-L-Leu-L-Pro,环(L-脯氨酰-L-亮氨酰)
  18. 大数据综合案例大作业
  19. 生成微信小程序码、URL Scheme和URL Link
  20. 9.28上海交大PMP每日一题

热门文章

  1. unraid 开核显
  2. 迅为i.MX6ULL开发板-Qt5.7Mplayer 移植文档
  3. GeneXus低代码如何简化和加速30个公司协同开发一个应用程序
  4. 使用C#编写Sockets
  5. 谷歌浏览器打开默认全屏打开指定网页,并可退出
  6. 学人工智能?你真的想好了吗?
  7. JTAG、JLink、ULINK、ST-LINK是什么?区别?
  8. Mybatis源码学习二(一级缓存)
  9. GuardPay能否取代PayPal?支付領域誰來領軍?
  10. 华为手环4pro能更新鸿蒙,华为手环4 Pro评测:多功能NFC+独立GPS,更专业运动健康管理...