资源简介
用栈辅助实现迷宫问题的求解,通过随机数发生器产生迷宫图,程序显示求解步骤
代码片段和文件信息
#include
#include
#include //因为要产生随机函数种子
#include //因为要用Sleep延时函数
#define MAX_X 20 //定义迷宫大小
#define MAX_Y 20
int maze[MAX_X][MAX_Y];
class stack_for_maze//迷宫行走路线存储专用栈类!
{
private:
struct node//结点用来记录压栈的迷宫坐标
{
int x;
int y;
char direction; //上一步的行走方向(即如何来到这里的) → ← ↑ ↓
node* next;
};
node* head;
public:
stack_for_maze()//构造函数
{
head=NULL;
}
~stack_for_maze()//析构函数
{
node* p=head;
while(head!=NULL)
{
head=head->next;
delete p;
p=head;
}
}
//________________________________________
void push(int xxint yychar ddirection)//压栈,将坐标和行走方向压栈
{
node* new_node;
new_node=new node;
if(new_node!=NULL)
{
new_node->x=xx;
new_node->y=yy;
new_node->direction=ddirection;
new_node->next=NULL;
if(head==NULL)
head=new_node;
else
{
new_node->next=head;
head=new_node;
}
}
else
cout<<“\n因为内存分配失败导致本次压栈失败!!!\n“;
}
//________________________________________
node* pop(int& xxint& yy)//出栈时带回栈顶元素坐标
{
if(head!=NULL)
{
node* p=head;
head=head->next;
xx=p->x;
yy=p->y;
delete p;
}
else
{
cout<<“\n因为栈已空导致本次出栈失败\n“;
}
return head;
}
//________________________________________
void print()//输出栈内元素
{
if(head!=NULL)
{
node* p=head;
while(p!=NULL)
{
cout<<“ “<x<<“ “<y<<“ “<direction< p=p->next;
}
}
else
cout<<“\n栈为空,打印失败\n“;
}
};
//_______________________________________________________
void CreateMaze()//创建迷宫
{
int max_way=MAX_X*MAX_Y;//产生通路的参数,值越大障碍越少
int xy;
for(x=0;x for(y=0;y maze[x][y]=1; //先把迷宫全部设为墙壁
srand((unsigned)time(NULL));//随机函数种子发生器(以时间做参数)
for(int i=0;i<=max_way;i++)//随机构建迷宫通路
{
x=rand()%(MAX_X-2)+1;
y=rand()%(MAX_Y-2)+1;
maze[x][y]=0;
}
maze[1][1]=0;//入口
maze[MAX_X-2][MAX_Y-2]=0;//出口
maze[0][1]=8;
maze[MAX_X-1][MAX_Y-2]=0;
}
//_________________________________________________________
void PrintMaze()//输出迷宫的当前状态
{
int xy;
system(“cls“);//清屏
cout< for(x=0;x {
for(y=0;y {
if(maze[x][y]==0){cout<<“ “;continue;}//通路
if(maze[x][y]==1){cout<<“■“;continue;}//墙
if(maze[x][y]==2){cout<<“ד;continue;}//死胡同
if(maze[x][
相关资源
- 数据结构,迷宫问题C语言版源代码
- 走迷宫(自动生成迷宫版本!)
- c++迷宫最短路径寻径算法
- OpenGL迷宫山东大学图形学实验三
- C语言自动走迷宫程序代码
- MFC可视化_迷宫算法_最短路径
- 迷宫MFC实现最短路径,有简单界面迷
- 迷宫益智游戏,c++mfc编写,亲测有效
- C++ 数据结构 迷宫求解
- MFC单文档程序下实现自动随机生成迷
- MFC 编写的迷宫游戏
- opengl做的迷宫游戏,基于C++
- Qt实现的迷宫与魔塔游戏 源码迷宫模
- 随机迷宫的形成及迷宫路径查找与输
- mfc 实现迷宫程序
- 迷宫求解MFC
- c++写的迷宫
- MFC实现迷宫搜索——Easy参考
- 3D天空迷宫.zip
- 基于VS2010的c++程序迷宫游戏
- c/c++解决迷宫问题
- 数据结构迷宫算法源码+实验报告
- 走迷宫问题栈实现.cpp
- 数据结构迷宫代码
- 迷宫问题代码算法详解
- 迷宫问题_数据结构C++课程设计_带报告
- 用栈非递归方法迷宫找出路
- 利用队列实现迷宫问题
- C++实现简单走迷宫的代码
- C语言迷宫小游戏课程设计
评论
共有 条评论