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

迷宫分析:在一个封闭的空间内,用’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);
		}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值