首页 > 其他分享 >迷宫问题

迷宫问题

时间:2022-12-07 21:46:01浏览次数:46  
标签:map findWay int 迷宫 System 问题 out

import java.util.Scanner;
public class Eext {
    public static void main(String[] args) {
        //出迷宫
        //思路:
        //1.先创建一个迷宫 用二维数组表示 int[][] map = new int[8][7];
        //2.先规定 map 数组的元素值,1代表障碍物,0代表可以走的路

        int[][] map = new int[8][7];

        //3.将最上面的一行和最下面的一行设为1
        for (int i = 0; i < 7; i++) {
            map[0][i] = 1;
            map[7][i] = 1;
        }

        //4.将最左边的一行和最右边的一行设为1
        for (int i = 0; i < 8; i++) {
            map[i][0] = 1;
            map[i][6] = 1;
        }

        //将不规则的障碍物填入迷宫
        map[3][1] = 1;
        map[3][2] = 1;

        //map[1][2] = 1;
        //map[2][1] = 1;
        

        
        System.out.println("寻路前迷宫地图情况:");
        for (int i = 0; i < map.length; i++) {
            for (int j = 0; j < map[i].length; j++) {
                System.out.print(map[i][j] + " ");
            }
            System.out.println();
        }


        //使用 findWay方法
        T t1 = new T();
        boolean arr = t1.findWay(map , 1 , 1);

        System.out.println(arr);



        System.out.println("\n寻路后迷宫地图情况:");
        for (int i = 0; i < map.length; i++) {
            for (int j = 0; j < map[i].length; j++) {
                System.out.print(map[i][j] + " ");
            }
            System.out.println();
        }
    }        
}

class T {
    /*
    1.findWay找路方法 如果找到了就返回true 否则返回false
    2.map 表示迷宫 i,j表示 小球所在的位置, 初始化的位置为(1,1)
    3.0表示没有障碍的路,1表示有障碍物,2表示可以走的路,3表示走过的死路
    4.当map[6][5] = 2 时,则代表小球走出了迷宫,方法结束,否则继续
    5.寻路策略:下 右 上 左
    */
    public boolean findWay(int[][] map , int i , int j) {
        if (map[6][5] == 2) { //代表走出了迷宫
            return true;
        } else {
            if (map[i][j] == 0) {
                //假定可以走通
                map[i][j] = 2;

                //使用寻路策略 确定该位置是否真的能走通 
                //寻路策略:下 右 上 左

                if (findWay(map ,  i + 1, j)) {  //向下走
                    return true;
                } else if (findWay(map ,  i,  j + 1)) { //向右走
                    return true;
                } else if (findWay(map ,  i - 1,  j)) { //向上走 
                    return true;
                } else if (findWay(map ,  i,  j - 1)) { //向左走 
                    return true;
                } else {
                    map[i][j] = 3;
                    System.out.println("我失败了,但还没放弃。");
                    return false;
                }
            } else {
                return false;
            }
        }
    }
}

 

标签:map,findWay,int,迷宫,System,问题,out
From: https://www.cnblogs.com/shuqiqi/p/16964626.html

相关文章

  • 关于JQuery validate表单校验插件对级联下拉框的校验问题
         今天在使用JQueryvalidate表单校验插件时,遇见了一个非常诡异的问题了。在此记录一下:     问题描述:               ......
  • .NET 6 中外部引用项目NU1105异常问题解决
    .NET6Project中,添加了其他解决方案的工程后,本地能编译通过,代码签入后,其他同事下载代码,编译报错:错误NU1105找不到“E:\Teld\01Code\TTP_CTP\_git\TTP_CTP_NET6\Src\Fr......
  • 微信小程序 分包解决超过2M的问题
    微信小程序要求: 没有做分包之前一直提示超过了1.5M,然后又加了二个页面,提示总包超过了2M。超过2M是不可以上传的。当然,预览的时候你可以通过设置,暂时小于4M,先测试,再进......
  • logback出现大量XXX_IS_UNDEFINED日志文件的问题
    前言在springboot中采用logback将日志打印到文件时,你是否遇到过文件名为XXX_IS_UNDEFINED的情况,今天带大家一块分析解决这个问题。一、logback中spring属性读取示例配置:<?x......
  • 谁偷了我的1天,JSON格式化时区问题
    问题从mysql数据库查询出来的时间数据,返回给前端后,如果采用yyyy-MM-ddHH:mm:ss的格式进行时间格式化,会相差8小时。而如果采用yyyy-MM-dd的格式,会相差一天。实体中的create......
  • charles 手机端安装证书无法下载问题
    charles开启后手机端也按照要求配置了代理,发现在手机端访问的时候用chrome浏览器无法打开chls.pro.ssl地址,电脑是win10,默认是开启了防火墙  在手机访问的时候总是打......
  • IDEA 解决乱码控制台问题
    https://blog.csdn.net/weixin_43709366/article/details/123852908https://blog.csdn.net/m0_67393593/article/details/126801782......
  • 动态规划:矩阵连乘问题
    以下只是对此问题的一个代码实现,具体理论部分请参见王晓东《算法设计与分析》第2版3.1节 矩阵连乘问题。#include<iostream>#include<iomanip>usingnamespacestd;#defi......
  • Install Shield制作安装时遇到的问题汇总
    1 制作的安装包在安装时,提示data1.cab缺少文件。.cab是压缩文件类型;data1.cab一般都是由安装程序制作的安装文件数据压缩包,例如VB编译程序时,一般都会除安装主程序外,都会......
  • Pycharm cannot set up a python SDK问题解决方法
    xcrun:error:invalidactivedeveloperpath(/Library/Developer/CommandLineTools),missingxcrun...解决方法:打开终端输入xcode-select--install回车后,系统......