JAVA——迷宫问题
起点在(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——迷宫问题相关推荐
- java 迷宫游戏_Java小项目之迷宫游戏的实现方法
项目要求: 一个网格迷宫由n行n列的单元格组成,每个大院个要么是空地(用0表示),要么是障碍物(用1表示),你的任务是找一条从起点到终点的移动序列,其中只能上下左右移动到相邻单元格.任何时候都不能在有 ...
- java迷宫寻找最短路径
利用广度优先遍历算法的特点,由于迷宫每次只能走一格,所以对于任意一个节点,bfs第一次到达该点时一定是最短路径 直接上代码: package com.common.utils;import java. ...
- java迷宫生成代码_通过深度优先搜索产生的迷宫的Java代码
import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java ...
- java迷宫队列实现_Creator 迷宫生成: DFS 与 BFS 算法实现
前言: 我的迷宫代码的实现受到 [liuyubobobo] 的影响. liuyubobobo 迷宫的实现: GUI 部分使用 java Swing,编程语言是 Java. **我的迷宫代码实现: ** ...
- Java————迷宫问题
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线. package algorithm_java;import java.u ...
- java迷宫_java实现迷宫算法--转
沿着所有方向进行探测,有路径则走,没有路径则从栈中回退. 回溯法是一种不断试探且及时纠正错误的搜索方法,下面的求解过程采用回溯法.从入口出发,按某一方向向前探索,若能走通(未走过的),即某处可以到达, ...
- java 迷宫最短路径_用Java实现迷宫最短路径算法
单源最短路(Bellman - Ford算法) 宽度优先搜索 迷宫最短路径用宽度优先搜索(bfs)相比用深度优先搜索(dfs)的好处在于bfs每次计算都是最短路径不存在重复计算,而dfs每计算出一条可 ...
- 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主 ...
- java迷宫类编程题_第十届蓝桥杯省赛java类B组 试题 E:迷宫 (动态规划之回溯法)...
问题描述 试题 E: 迷宫 [问题描述] 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方. 010000 000100 001001 110000 迷宫的入口为 ...
- java 迷宫代码_老鼠走迷宫代码 JAVA
展开全部 //老鼠走迷宫程序 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Maze1 ...
最新文章
- 聊聊nginx报错499问题
- POJ - Til the Cows Come Home(Dijkstra)
- SAP Cloud SDK‘s Virtual Data Model
- Spark入门(四)Idea远程提交项目到spark集群
- pycharm下载与安装
- promise async await
- 杨辉三角形函数 JavaScript Generator 实现
- python携程使用_简单了解python gevent 协程使用及作用
- 自助友情链接交换网站php源码,友情链接交换系统
- Python和Ruby两大语言全方位对比
- 条形码怎么看?一文带你认识!
- Unity EditorWindow Rename
- opencv图像处理—项目实战:答题卡识别判卷
- 微信小程序 - 实现车牌输入功能,自定义车牌号输入法组件(键盘弹出后输入车牌号,可自定义各地区及界面样式)超详细注释组件插件示例源码
- 莫比乌斯函数(Mobius)的求法 每日一遍,算法再见!
- MCE公司:药研发的守护天使-MCE化合物库之先导篇
- K9无线充电5W无线快充pcba方案FS68001
- 【百度地图API·javascriptapi】地图定位、创建自定义图标、获取用户点击位置
- 04 基本模块的驱动
- 国内如何到Facebook社交平台预充值广告费用?怎么解决充值渠道问题?