📄 stack.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 + -