思路

1 表示障碍

代码

public class MiGong{public static void main(String[] args){int[][] map = new int[8][7];//迷宫地图//设置障碍物,1表示障碍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;}map[3][1] = 1;map[3][2] = 1;map[2][2] = 1;//输出地图System.out.print("地图\n" + "============\n");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("\n");}myTool tool = new myTool();tool.findWay(map, 1, 1);//走路的情况System.out.print("走迷宫的情况\n" + "============\n");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("\n");}}
}//出迷宫返回true//初始位置map[1][1],到了map[6][5]就算出迷宫//0 可以走 1 障碍物 2 走到的位置 3 走过的路,但是不通//当map[6][5] == 2时,递归结束//找路的策略:下 - 右 - 上 - 左
class myTool{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 {map[i][j] = 3;return false;} } else { //map[i][j] == 1, 2, 3return false;}}}
}

1、调用findWay方法
2、如果找到,就返回true,否则返回false(true、false是返回给if语句的判断条件)
3、map就是二维数组,即表示迷宫
4、map[1][1]就是老鼠的位置,初始化的位置为(1,1)
5、因为是递归的找路,所以我先规定map数组的各个值的含义
0 表示可以走 1表示障碍物 2表示走过的路 3表示走过,但是走不通是死路
6、当map[6][5]=2就说明找到通路,就可以结束,否则就继续找.
7、找路策略下->右->上->左

结果

Java递归解决老鼠走迷宫问题相关推荐

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

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

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

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

  3. java代码老鼠走迷宫案例

    java代码老鼠走迷宫案例 public class MiGong{//编写一个main方法public static void main(String[] args) {//思路// 1. 先创建迷 ...

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

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

  5. 老鼠走迷宫(递归实现)

    思路分析 使用递归回溯的思想来解决老鼠出迷宫 1. findWay 方法就是用来找出迷宫的路径的 2. 如果找到,就返回 true ,否则返回 false 3. map 就是二维数组,即表示迷宫 4. ...

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

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

  7. 老鼠走迷宫-java

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

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

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

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

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

最新文章

  1. 层展开/关闭 - 运动缓冲效果
  2. Django开发实战
  3. MOS管安全工作区SOA
  4. 网络推广——网络推广专员浅析新站应该如何提升长尾关键词的排名
  5. redis单线程架构
  6. CentOS6.8网络接口配置文件ifcfg-eth0
  7. HTTP basic auth
  8. java反射可以获得什么属性_java反射获得属性的值
  9. jquery解析java对象数组_Javascript / jQuery初学者:将对象推送到数组
  10. markdown图片设置
  11. `object.__init__`
  12. Linux运维基础入门(二):网络基础知识梳理02
  13. java画一个八卦_View绘制系列(9)-Canvas八卦图绘制
  14. 修改文件句柄:ulimit 系统设置脚本(避免设置不彻底而无效)
  15. win10如何截屏_win10使用技巧分享!
  16. 关于软件测试人员的几个职业规划方向
  17. 关于双非本科2020秋招,我想说的
  18. HDFS——JN扩容的正确姿势
  19. C# WinForm 界面控件
  20. CC00006.CloudOpenStack——|OpenStack组件.V01|——|openstack-keystone|组件说明|

热门文章

  1. BlockingQueue 详解
  2. duffing matlab,duffing方程matlab
  3. 布莱克斯科尔斯模型(一)
  4. oracle 10g xe 12505,ORACLE10g的ORA-12505问题解决方法
  5. SpringBoot+MyBatis+MySql实现的医院管理系统
  6. 如何设置锚点居页面顶部距离
  7. python声音可视化_声音的可视化处理
  8. 从潞晨到世界名校,实习生火热招聘中
  9. 全网最新 java 开发 OPC 实现 DA 通讯控制点位 西门子
  10. RDP服务针对性攻击、钓鱼邮件攻击和勒索病毒家族Phobos研究