• 老鼠走迷宫java ---递归


    题目 

    有一个八行七列的数组,红色的格子代表墙,白色格子代表可以走的格子;

    假定老鼠起点在map【1】【1】,设计算法帮老鼠找到到达终点map【6】【5】的路线。

    思路

    1.findWay方法就是专门来找出迷宫的路径

    2.如果找到,就返回true,否则返回false

    3.map 就是二维数组, 即表示迷宫

    4.i,j就是老鼠的位置,初始化的位置为(1,1)

    5.因为我是递归的找路,所以先规定map数组的各个值得含义

       0表示可以走   1表示障碍物   2表示可以走    3表示走过,但是走不通

    6.当map【6】【5】=2就说明找到通路,就可以结束,否则就继续找

    7.先确定老鼠找路策略  下=>右=>上=>左

    代码

    1. public class MiGong {
    2. public static void main(String args[]){
    3. int[][]map=new int[8][7];
    4. for(int i=0;i<7;i++){
    5. map[0][i]=1;
    6. map[7][i]=1;
    7. }
    8. for(int i=0;i<8;i++){
    9. map[i][0]=1;
    10. map[i][6]=1;
    11. }
    12. map[3][1]=1;
    13. map[3][2]=1;
    14. System.out.println("=====当前地图情况=====");
    15. for(int i=0;i
    16. for(int j=0;j
    17. System.out.print(map[i][j]);
    18. }
    19. System.out.println();
    20. }
    21. T t1=new T();
    22. t1.findWay(map,1,1);
    23. System.out.println("=====找路情况如下=====");
    24. for(int i=0;i
    25. for(int j=0;j
    26. System.out.print(map[i][j]);
    27. }
    28. System.out.println();
    29. }
    30. }
    31. }
    32. class T{
    33. public boolean findWay(int[][]map,int i,int j){
    34. if(map[6][5]==2){ //说明已经找到
    35. return true;
    36. }else{ //如果还没有找到则继续找,0/3
    37. if(map[i][j]==0){ //0,表示还未走过,可以走
    38. map[i][j]=2; //先假设可以走,设置为2
    39. if(findWay(map,i+1,j)){ //递归向下找路 下
    40. return true;
    41. } else if (findWay(map,i,j+1)) { //递归向右找路 右
    42. return true;
    43. } else if (findWay(map,i-1,j)) { //递归向上找路 上
    44. return true;
    45. } else if (findWay(map,i,j-1)) { //递归向左找路 左
    46. return true;
    47. } else{ //找不到则置为3,返回false
    48. map[i][j]=3;
    49. return false;
    50. }
    51. }
    52. else{ //1,2,3,不用再探测
    53. return false;
    54. }
    55. }
    56. }
    57. }

    运行结果

  • 相关阅读:
    记录一次bug
    干洗店上门洗护小程序开发,互联网洗鞋店软件
    广州大学2023-2024学年第一学期《计算机网络》A卷
    高德 几千条数据,点标记Marker转海量标注 LabelMarker
    Jackson框架处理多态类
    知识图谱:基本概念
    Spring—AOP
    游标的概念及运用笔记
    华为云各项指标介绍
    C++快速入门
  • 原文地址:https://blog.csdn.net/Crush_66/article/details/133661829