Java迷宫

本文介绍如何用Java编程实现一个迷宫路径搜索功能。首先,根据用户输入的行列数和路径信息创建迷宫。然后,利用栈数据结构从起点开始,遵循右下左上方向寻找路径。当找到路径时,将路径用星号(*)标记并打印。文章详细分析了迷宫的生成、路径搜索及结果显示的代码实现。
摘要由CSDN通过智能技术生成

今天我们用简单的函数调用实现一个迷宫,具体操作如下:

迷宫的功能描述

1.提示“请输入迷宫的行列数:5 5”

2.提示“请输入迷宫的路径信息(0是可以行走,1是不能行走):”
0 0 1 1 1
1 0 0 0 1
1 0 1 1 1
1 0 1 1 1
1 0 0 0 0
搜索迷宫路径…
3.若不存在路径则打印“迷宫不存在有效路径”
4. 若存在路径则再次打印迷宫,把是路径的地方用 * 打印出
* * 1 1 1
1 * 0 0 1
1 * 1 1 1
1 * 1 1 1
1 * * * *

迷宫功能分析
0 0 1 1 1
1 0 0 0 1
1 0 1 1 1
1 0 1 1 1
1 0 0 0 0

首先用在主函数中创建一个迷宫对象,通过二维数组生成迷宫,定义迷宫的行列数和迷宫信息!

public class Main {
   
    public static void main(String[] args) {
   
        Scanner in =new Scanner(System.in);
        System.out.print("请输入迷宫的行列数:");
        int row = in.nextInt();
        int col = in.nextInt();

        //用row 和 col生成迷宫对象
        Maze maze = new Maze(row,col);

        System.out.println("请输入迷宫的路径信息:");
        for (int i = 0; i < row;++i) {
   
            for (int j = 0; j < col; ++j) {
   
                int data = in.nextInt();
                maze.creatMazeNode(data,i,j);
            }
        }
        //设置迷宫每一个节点的四个方向的行走状态
        maze.setMazeNodeState();
        //开始寻找迷宫路径
        maze.findMazePath();
        //输出迷宫路径结果
        maze.showMazePath();
    }
}

解决这个问题需要创建一个栈,将入口处节点放入栈顶,规定在每一个节点处寻找迷宫路径按照右下左上的方式寻找,依次走过每一个节点,将可行走路径的节点放入栈中,最终将栈中元素输出,并打印出迷宫状态!

package 迷宫;
import java.util.Arrays;

/**
 * 顺序栈
 * 寻找迷宫路径需要用到的栈结构
 */
public class Stack {
   
    //存储节点类型
    private Node[] array;
    //栈顶的位置
    private int top;

    //构造,push,pop,top,full,empty
    public Stack(){
   //定义顺序栈的长度
        this.array = new Node[10];
        this.top = 0;
    }
    public void push (Node node){
   //构造节点入栈
        if (this.top==this.array.length){
   //判断数组元素是否溢出,若溢出则对其进行扩容
            
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值