如图一样的迷宫,红色部分代表有障碍物,老鼠从(1,1)坐标开始出发,坐标(6,5)代表迷宫出口,求出老鼠的逃离路径。


/*老鼠出迷宫问题*/
public class P225MiGong {//先用二维数组创建一个迷宫(八行七列为例),规定:0可以走,1有障碍物,public static void main(String[] args) {int[][] map = new int[8][7];//先将迷宫的最上一行和最下一行设成障碍物for (int i =0;i<7;i++){map[0][i]=1;map[7][i]=1;}//将迷宫的第一列和最后一列设成障碍物for (int i =0;i<8;i++){map[i][0]=1;map[i][6]=1;}//将其中间设置障碍物(3,1)(3,2)map[3][1]=1;map[3][2]=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();}System.out.println("====找迷宫后====");Migong migong =new Migong();migong.FindWay(map,1,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();}}
}
//创建一个类,保存其方法去递归
class Migong{//思路://1、创建一个FindWay方法去探寻迷宫路径//2、如果找到路径,返回 true,否则就返回false//3、main方法中创建的map二维数组就代表迷宫//4、i,j 代表老鼠目前所在的位置//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){//map[6][5]位置是2,则代表已经找到了return true;}else {//不等于2的时候,则代表没有找到需要继续找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 {//策略全部走后没有成功,则表示一开始的假定是错误的,所以此路不通map[i][j] = 3;return false;}}}//都没有找到则代表找不到return false;}
}

老鼠逃出迷宫(递归)相关推荐

  1. Java-老鼠出迷宫(递归)

    文章目录 问题描述 一.解题思想 二.编写代码 1.创建迷宫 2.写出findway方法 3.整体代码测试如下 三.总结 问题描述 一只小老鼠从起点通过一些障碍到达终点,四周的墙壁不能通行,请设计出迷 ...

  2. 动画演示深度优先算法搜寻逃出迷宫的路径

    深度优先算法(DFS 算法)是什么? 寻找起始节点与目标节点之间路径的算法,常用于搜索逃出迷宫的路径.主要思想是,从入口开始,依次搜寻周围可能的节点坐标,但不会重复经过同一个节点,且不能通过障碍节点. ...

  3. 问题 H: 逃出迷宫

    问题 H: 逃出迷宫 时间限制: 1 Sec  内存限制: 128 MB 提交: 6  解决: 3 [提交][状态][讨论版] 题目描述 现在有一个迷宫,'a'代表起点位置,'.'代表可以通行的路,' ...

  4. 逃出迷宫完整算法C++

    迷宫图案,白色代表通道,黑色代表墙.  迷宫入口坐标(1,1),出口坐标(8,8)   0 1 2 3 4 5 6 7 8 9   0■■■■■■■■■■   1■□□■□□□■□■   2■□□■□ ...

  5. 递归回溯——老鼠出迷宫

    目录 前言 设计思路 绘制地图 寻找出路 绘制路线 总结 前言 这是一道关于递归回溯的经典题目,在布下障碍的迷宫中,为老鼠朋友找到一条可以逃出困境的路线,本文将为大家详细讲解如何运行递归的方法让老鼠走 ...

  6. java实现老鼠出迷宫

    如图一只小老鼠从起点通过一些障碍到达终点,四周的墙壁不能通行,求通过计算得出迷宫路径,使老鼠成功逃出迷宫 算法设计 ①分而治之思想: 首先将老鼠出迷宫问题分成两部分求解,第一,迷宫的设计,第二,迷宫的 ...

  7. 老鼠出迷宫问题(Java)(递归)

    问题描述: 老鼠出迷宫:一只老鼠被放入迷宫之中,迷宫中设有障碍物(墙),通过向上,下,左,右移动,从而,找出正确的路线,抵达指定位置,从而走出迷宫.迷宫如图所示: 我们可以假设小老鼠的起始位置在A点, ...

  8. 递归问题之老鼠出迷宫

    1.小球得到的路径,和程序员设置的找路策略有关,即:找路的上下左右的顺序相关 2.在得到小球路径时,可以先使用(下右上左),再改成(上右下左),看看路径是不是有变化 3.测试回溯现象 迷宫地图 主函数 ...

  9. 老鼠出迷宫问题(递归问题)

    public class MiGong{public static void main(String[] args){//思路 //1. 先创建迷宫,用二维数组表示 int[][]//2. 先规定 m ...

最新文章

  1. python get请求 由于目标机器_使用python和selenium进行Web抓取:由于目标机器主动拒绝i...
  2. spark任务shell运行_大数据系列:Spark的工作原理及架构
  3. Laravel核心解读--Facades
  4. Linux jar包 后台运行
  5. [练习]QQ登陆界面-测试用例的编写
  6. CSS 中文字体格式
  7. 【网页保存为PDF】pdfkit神器网页自动保存PDF文件
  8. 弹性力学,塑性力学,流变学,连续介质力学,断裂力学,流体力学基本定义及关系
  9. 关于VScode中如何修改默认的中文注释格式(包括去除斜体和修改颜色)
  10. 云空间插html音乐,【详细教程】如何在空间中引用网易云音乐
  11. DOSBOX——DEBUG的简单使用
  12. Unity + Mirror实现原创卡牌游戏局域网联机
  13. 苹果怎么取消微信订阅服务器,教程:取消微信免密支付授权功能设置
  14. 著名超导论文被Nature撤稿
  15. 免费下载!5本阿里技术好书,带你看更大的世界
  16. iOS证书和描述文件申请
  17. 掌阅科技年营收20.7亿:利润1.5亿 数字阅读迎来政策支持
  18. 对象数组去重——数组删除所有含有固定id的对象
  19. 外贸开发信 html,很经典的外贸开发信范文.doc
  20. 雅居乐西双林语四周年风华盛典,诚邀您亲鉴视听盛宴

热门文章

  1. 微信Mac版可刷朋友圈,目前内测中 | 微信PC版本 下载
  2. 尝试自动批量翻译方舟编译器源码中的标识符
  3. mysql boost 是什么意思_十步完全理解SQL
  4. c语言choose函数怎么用,Excel Choose函数的使用方法,包含把数组和定义名称为作参数及与Match组合实现绩效或成绩评定实例...
  5. 扫地机器人充电插座布置_扫地机器人及其充电座的制作方法
  6. 无人机拉力测试台校准之ASTM标准
  7. 工控安全漏洞数大爆发,我国企业要如何掘金?
  8. nginx代理静态资源
  9. 在线代理 网页代理 ip代理 在线代理ip 代理ip 网页代理ip ip在线代理
  10. 全球同服 游戏服务器架构设计