成都网站制作网站设计,网页设计岗位,长春哪家网站做的好,重庆装修公司哪家最好题目描述 代码实现
package com.atguigu.recursion;/*** 创建人 wdl* 创建时间 2021/3/21* 描述*/
public class MiGong {public static void main(String[] args) {//先创建一个二维数组#xff0c;模拟迷宫//地图int[][] map new int[8][7];//使用1表示墙//上下全部置为1f…题目描述 代码实现
package com.atguigu.recursion;/*** 创建人 wdl* 创建时间 2021/3/21* 描述*/
public class MiGong {public static void main(String[] args) {//先创建一个二维数组模拟迷宫//地图int[][] map new int[8][7];//使用1表示墙//上下全部置为1for (int i 0; i 7; i) {map[0][i]1;map[7][i]1;}//左右全部置为1for (int i 0; i 8; i) {map[i][0]1;map[i][6]1;}//设置挡板1表示map[3][1]1;map[3][2]1;
// map[1][2]1;map[2][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();}}//使用递归回溯来给小球找路//说明//1.map表示地图//2.ij表示从地图哪个位置开始找1,1//3.如果小球能到map[6][5]位置则说明通路找到//4.约定当map[i][j]为0表示没有走过当为1表示墙2表示通路可以走 3.表示该点已经走过但是走不通//5.在走迷宫时需要确定一个策略(方法)下-右-上-左如果该点走不通再回溯/**** param map 表示地图* param i 从哪个位置开始找* param j* return 如果找到通路就返回true否则返回false*///使用递归回溯给小球找路public static boolean setWay(int [][]map,int i,int j){if(map[6][5]2){//通路已经找到OKreturn true;}else {if(map[i][j]0){//如果当前这个点还没有走过//策略(方法)下-右-上-左走map[i][j]2;//假定该点是可以走通if (setWay(map,i1,j)){//向下走return true;}else if(setWay(map,i,j1)){//向右走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,3return false;}}}}