栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java解决迷宫问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java解决迷宫问题

问题描述:创建一个迷宫,给出起始位置和终点位置,找出一条通路

 

思路分析:1.迷宫可以用一个二维数组去定义

2.把出口的坐标设为回溯的出口

3.定义策略,例如:先向下走,再向右走,再向上走,最后向左走

代码部分:

//在迷宫中,我们把墙或障碍物设为1
public class Migong {
    public static void main(String[] args) {
        int map[][] =  new int[8][7]; //创建一个8*7的地图
        //把第一行和最后一行的值设为1
        for(int i = 0; i < 7; i++) {
            map[0][i] = 1;
            map[7][i] = 1;
        }
        //把第一列和最后一列的值设为1
        for(int j = 0; j < 8; j++) {
            map[j][0] = 1;
            map[j][6] = 1;
        }
       
        //在地图内设置障碍物,可自行设置
        map[3][1] = 1;
        map[3][2] = 1;
       
        //创建一个对象t1
        T t1 = new T();
       
        //设置一个初始位置的坐标
        t1.miGong(map,1,1);
        
        //输出一条通路
        for(int i = 0; i < 8; i++) {
            for(int j= 0; j < 7; j++) {
                System.out.print(map[i][j] + " ");
            }
            System.out.println();
        }
    }
}

//创建一个类 T
class T {
    //在这个方法中,0表示可走的路,1表示障碍物,2表示已走过的路,3表示一个死路
    public boolean miGong(int map[][],int i,int j) {
        //map[6][5] == 2表示出口
        if(map[6][5] == 2) {
            return true;
        } else {
            //当map[i][j] == 0时,表示可走,此时先令该路是通路,赋值为2
            if(map[i][j] == 0) {
                map[i][j] = 2;
                //设置一个策略
                //先向下走,再向右走,再向上走,最后向左走
                if(miGong(map,i + 1,j)) {
                    return true;
                } else if(miGong(map,i,j + 1)) {
                    return true;
                } else if(miGong(map,i - 1, j)) {
                    return true;
                } else if(miGong(map,i,j - 1)) {
                    return true;
                } else {        //如果上下左右都走不通,赋值为3,表示这个路是死路
                    map[i][j] = 3;
                    return false;
                }
            } else {        //如果是1,2,3,则表示不能走
                return false;
            }
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003562.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号