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

java 递归回溯 迷宫小游戏 思路分析加代码

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

java 递归回溯 迷宫小游戏 思路分析加代码

package xin.com.x07;

package xin.com.x07;

public class game {
    //迷宫游戏

    
    static boolean findWay(int[][]map,int i,int j){

        //判断是否找到出口;找到输出true  没有继续找
        if(map[6][5] == 2){
            return true;
        }else {//首先判断当前位置是否为0 即没有走过的
            if(map[i][j] == 0) {
                //假定当前位置正确;
                map[i][j] = 2;
                //递归验证当前位置是否可以到达下一位置,如果可以返回true;
                if (findWay(map, i + 1, j)) {
                    return true;
                } else if (findWay(map, i, j + 1)) {
                    map[i][j + 1] = 2;
                    return true;
                } else if (findWay(map, i, j - 1)) {
                    map[i][j - 1] = 2;
                    return true;
                } else if (findWay(map, i - 1, j)) {
                    map[i - 1][j] = 2;
                    return true;
                } else {
                    //如果不可以到达下一位置,就设置3 表示走过但是不能出去,
                    //当程序走到最后一步发现不是出口而是死胡同的时候;会回溯(逐步跳出递归的程序)把每个走过的位置变成3
                    map[i][j] = 3;
                    return false;
                }
            }
        }
        return false;
    }

    public static void main(String[] args) {

        //设置迷宫地图
        //1.设置迷宫大小
        int[][] map = new int[8][7];
        //2.设置障碍物
        //  第一行和最后一行设置为1
        for(int i = 0;i 
运行结果  1代表障碍物 2代表出路  3代表做过但是行不通


进行测试 无出路的情况: 
 //  单独设置障碍物
        map[3][1] = 1;
        map[3][2] = 1;
        map[3][3] = 1;
        map[2][3] = 1;
        map[1][3] = 1;
        map[0][3] = 1;
        map[6][4] = 1;
结果

总结:

这个小游戏很好的解释了递归和回溯,

递归:简单来说就程序自己调用自己;

 回溯:回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。

回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法。

 以上就是个人对于这个小游戏的总结和感悟;有什么不对的还请留言,谢谢。

 

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

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

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