⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stack.cpp

📁 数据结构的课程设计
💻 CPP
字号:
#define MAXSIZE 100
#define NULL 0
#include <iostream>
using namespace std;
class people{
public:
	int from,cur_x,cur_y,togo[5];
	people():from(0),cur_x(1),cur_y(1){};
	people(int x,int y):cur_x(x),cur_y(y){};
};
class Stack{
private:
	people m_p[MAXSIZE];
	int m_Size;
public:
	Stack():m_Size(0){};
	bool m_Push(people p);
	people m_Pop();
}; 
bool Stack::m_Push(people p){
	if(m_Size <= MAXSIZE-1){
		m_p[m_Size] = p;
		m_Size++;
		return true;
	}
	else return false;
}
people Stack::m_Pop(){
	if(m_Size > 0){
		m_Size--;
		return m_p[m_Size];
	}
}


#define MAX_X 10
#define MAX_Y 10
int m_Graph[MAX_X][MAX_Y]={ 
		0,0,0,0,0,0,0,0,0,0, 
		0,1,1,0,1,1,1,0,1,0, 
		0,1,1,0,1,1,1,0,1,0, 
		0,1,1,1,1,0,0,1,1,0, 
		0,1,0,0,0,1,1,1,1,0, 
		0,1,1,1,0,1,1,1,1,0, 
		0,1,0,1,1,1,0,1,1,0, 
		0,1,0,0,0,1,0,0,1,0, 
		0,0,1,1,1,1,1,1,1,0, 
		0,0,0,0,0,0,0,0,0,0
	};
class Maze{
private:
	
	people zlx,Exit;
	Stack m_Position;
public:
	
	Maze();
	bool m_Istogo(int x,int y);
	bool m_Go(int x,int y);
	void m_SetExit(int x,int y){Exit.cur_x = x;Exit.cur_y = y;};
	bool m_Result(){return m_Go(zlx.cur_x,zlx.cur_y);};
};
Maze::Maze(){
	//zlx=new people;
	// m_Graph[MAX_X][MAX_Y]
}

bool Maze::m_Istogo(int x, int y){//判断坐标(x,y)是否可走
	if(m_Graph[x][y] == 1) return true;
	else return false;
}
bool Maze::m_Go(int x,int y){//向坐标(x,y)走
	if(zlx.togo[1] = m_Istogo(zlx.cur_x+1,zlx.cur_y)) zlx.togo[0]++;//令
	if(zlx.togo[2] = m_Istogo(zlx.cur_x,zlx.cur_y+1)) zlx.togo[0]++;
	if(zlx.togo[3] = m_Istogo(zlx.cur_x-1,zlx.cur_y)) zlx.togo[0]++;
	if(zlx.togo[4] = m_Istogo(zlx.cur_x,zlx.cur_y-1)) zlx.togo[0]++;
	if(zlx.togo[0] >= 1){
		//m_Position.m_Push(zlx);
	
		if(zlx.togo[1] && zlx.from!=1){ zlx.cur_x++;};
		if(zlx.togo[2] && zlx.from!=2){ zlx.cur_y++;};
		if(zlx.togo[3] && zlx.from!=3){ zlx.cur_x--;};
		if(zlx.togo[4] && zlx.from!=4){ zlx.cur_y--;};
		if((zlx.cur_x>=MAX_X-1 || zlx.cur_y>=MAX_Y-1)&&(zlx.cur_x!=Exit.cur_x)&&(zlx.cur_y!=Exit.cur_y)) return false;
	}
	else if(zlx.togo[0] == 0){
		//zlx = m_Position.m_Pop();
		zlx.togo[zlx.from] = 0;
	}
	m_Go(zlx.cur_x,zlx.cur_y);
	return true;
}
int main(){
	
	Maze game;
	game.m_SetExit(1,1);
	cout<<game.m_Result();
	

	

	
	return 0;
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -