起点在(1,1),终点在(6,5)

代码实现:

package 递归;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;//输出地图System.out.println("======地图=====");for(int i = 0;i < 8;i++) {for(int j = 0;j < 7;j++) {System.out.print(map[i][j] + " ");}System.out.println();}//使用递归回溯setWay(map,1,1);//输出新的地图,小球走过,并标识过的System.out.println("======新地图=====");for(int i = 0;i < 8;i++) {for(int j = 0;j < 7;j++) {System.out.print(map[i][j] + " ");}System.out.println();}}//使用递归回溯来给小球找路/*** map 表示地图* i,j 表示从地图哪个位置开始出发(1,1)* 如果小球能到map[6][5] 位置,则说明通路找到* 约定:当map[i][j] = 0,该点没有有过 当=1表示墙,当=2表示通路可走,当=3表示该店已经走过,但是走不通* 策略:下->右->上->左*/public static boolean setWay(int[][] map,int i,int j) {if(map[6][5] == 2) //通路已经找到return true;else {if(map[i][j] == 0) {//这个点还没走过//策略:下->右->上->左map[i][j] = 2;//假设这个点可以走通if(setWay(map,i+1,j)) //向下走return true; else if(setWay(map,i,j+1))//向右走return true;else if(setWay(map,i-1,j)) //向上走return true;else if(setWay(map,i,j-1)) //向左走return true; else //说明该点走不通,是条死路map[i][j] = 3;return false;}else//如果map[i][j] != 0,可能是1,2,3 return false;}}}

运行结果:

 

JAVA——迷宫问题相关推荐

  1. java 迷宫游戏_Java小项目之迷宫游戏的实现方法

    项目要求: 一个网格迷宫由n行n列的单元格组成,每个大院个要么是空地(用0表示),要么是障碍物(用1表示),你的任务是找一条从起点到终点的移动序列,其中只能上下左右移动到相邻单元格.任何时候都不能在有 ...

  2. java迷宫寻找最短路径

    利用广度优先遍历算法的特点,由于迷宫每次只能走一格,所以对于任意一个节点,bfs第一次到达该点时一定是最短路径 直接上代码: package com.common.utils;import java. ...

  3. java迷宫生成代码_通过深度优先搜索产生的迷宫的Java代码

    import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java ...

  4. java迷宫队列实现_Creator 迷宫生成: DFS 与 BFS 算法实现

    前言: 我的迷宫代码的实现受到 [liuyubobobo] 的影响. liuyubobobo 迷宫的实现: GUI 部分使用 java Swing,编程语言是 Java. **我的迷宫代码实现: ** ...

  5. Java————迷宫问题

    它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线. package algorithm_java;import java.u ...

  6. java迷宫_java实现迷宫算法--转

    沿着所有方向进行探测,有路径则走,没有路径则从栈中回退. 回溯法是一种不断试探且及时纠正错误的搜索方法,下面的求解过程采用回溯法.从入口出发,按某一方向向前探索,若能走通(未走过的),即某处可以到达, ...

  7. java 迷宫最短路径_用Java实现迷宫最短路径算法

    单源最短路(Bellman - Ford算法) 宽度优先搜索 迷宫最短路径用宽度优先搜索(bfs)相比用深度优先搜索(dfs)的好处在于bfs每次计算都是最短路径不存在重复计算,而dfs每计算出一条可 ...

  8. java迷宫实训报告_Java综合实训报告-迷宫.doc

    Java综合实训报告-迷宫 目 录 1.需求分析2 2.概要设计2 2.1功能图3 2.2系统流程图4 3.详细设计4 3.1类关系图5 3.2类设计图5 类Maze5 类MazeGrid6 3.3主 ...

  9. java迷宫类编程题_第十届蓝桥杯省赛java类B组 试题 E:迷宫 (动态规划之回溯法)...

    问题描述 试题 E: 迷宫 [问题描述] 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方. 010000 000100 001001 110000 迷宫的入口为 ...

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

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

最新文章

  1. 聊聊nginx报错499问题
  2. POJ - Til the Cows Come Home(Dijkstra)
  3. SAP Cloud SDK‘s Virtual Data Model
  4. Spark入门(四)Idea远程提交项目到spark集群
  5. pycharm下载与安装
  6. promise async await
  7. 杨辉三角形函数 JavaScript Generator 实现
  8. python携程使用_简单了解python gevent 协程使用及作用
  9. 自助友情链接交换网站php源码,友情链接交换系统
  10. Python和Ruby两大语言全方位对比
  11. 条形码怎么看?一文带你认识!
  12. Unity EditorWindow Rename
  13. opencv图像处理—项目实战:答题卡识别判卷
  14. 微信小程序 - 实现车牌输入功能,自定义车牌号输入法组件(键盘弹出后输入车牌号,可自定义各地区及界面样式)超详细注释组件插件示例源码
  15. 莫比乌斯函数(Mobius)的求法 每日一遍,算法再见!
  16. MCE公司:药研发的守护天使-MCE化合物库之先导篇
  17. K9无线充电5W无线快充pcba方案FS68001
  18. 【百度地图API·javascriptapi】地图定位、创建自定义图标、获取用户点击位置
  19. 04 基本模块的驱动
  20. 国内如何到Facebook社交平台预充值广告费用?怎么解决充值渠道问题?

热门文章

  1. python获取自己发的说说内容
  2. 港大全面封杀ChatGPT!AI肆虐高校,作弊丑闻震惊全世界
  3. 车市拐点?L2级辅助驾驶高增长「开启」下半年供应商更替潮
  4. sql yog注册码
  5. 2023跨年烟花(浪漫烟花+自定义音乐+雪花飘飘+自定义文字)
  6. Windows系统隐私优化WPD
  7. WPD软件的影响:edge出现由您的组织管理字样
  8. 梦想不孤单,我们不再犹豫
  9. 游戏原画学习步骤,零基础一步步学原画!
  10. 线性代数---行列式计算技巧篇