java 用栈的原理(穷举)实现迷宫游戏

本文介绍如何利用栈的先进后出特性解决迷宫游戏的路径寻找问题。通过0,1,2,3分别表示上、下、左、右四个方向进行试探,当遇到无法通行或已走过的位置时,回溯并继续尝试。使用链表存储坐标点及方向,避免重复和无效的路径。在每一步探索中,会排除非通行区域、已走过路径以及回溯的点。" 82746703,7514845,本地局域网与域名解析建站教程,"['前端开发', '服务器', '域名管理', '网站部署', '网络配置']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

迷宫分析:在一个封闭的空间内,用’0’表示可走,’1’表示墙;有一个起点和一个终点,需要找到从起点到终点的通路,还要保证在寻路的过程中不会出现来回走的情况。从起点出发,我们用0,1,2,3来表示上下左右,也就是寻路的方向;每走一步之后都按照0,1,2,3的方向进行试探可否走,如果能走,把能走的坐标和来时的方向进行压栈,栈里都是走过的路线,如果0不通走1,1不通走2,2不通走3,都不通退一格,继续按照0-->1-->2-->3的方向寻路。这就很符合栈的先进后出原理,坐标点在栈里的存储可以用数组实现,也可以用链表实现,这里使用链表。存放坐标和方向使用类的数组,好像叫什么结构体,习惯性叫类的数组。

     注意:每走一步的时候有几个不能走

1.不是’0’不能走

2.走过的不能走。(也就是栈里已经有的坐标点)

3.退回来的不能走(就是从栈里pop出的点)

     栈:

package 栈原理迷宫游戏;

public class Stack {
	public LinkList ll = new LinkList();
	public int top;
	public Stack(){

	}
	public void push(Data data){
		ll.addHeadNode(data);
	}
	public void pop(){
		ll.delNode();
	}
	public void print(){
		ll.print();
	}
	public Data getNextNode(){
		if(ll.head.getNext()!=null){
		return ll.head.getNext().data; 
		}
		return null;
	}
	public boolean isEmpty(){
		if(ll.head==null){
			return true;
		}
		return false;
	}
	public Data look(){
		if(isEmpty()!=true){
			return ll.head.data;
		}
		return null;
	}
	public boolean find(Data data){
		if(isEmpty()){
			return false;
		}else{
			return ll.findNode(data);
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值