资源简介

迷宫的生成与自动寻路; 详细的介绍了迷宫的生成,还有求解。 代码有注释
好好学习天天向上
希望大家珍惜大学时光

资源截图

代码片段和文件信息

#include
#include
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

#define Status int
#define Wall 1
#define Road 0
#define Start 0
#define End 0
#define Esc 5
#define Up 1
#define Down 2
#define Left 3
#define Right 4
#define ERROR 0
#define OVERFLOW -2
#define TRUE 1
#define FALSE 0
#define OUT 8
#define STEPPED 2
#define MAX 1000000
////////////////////////////////////////////////////////////////
/**************************************************************/
////////////////////////////////////////////////////////////////
//以下为函数申明,各种结构体的定义
//  建立节点结构体  
struct Point
{
int row;
int col;

Point(int x int y) {
this->row = x;
this->col = y;
}

bool operator!=(const Point& rhs) {
if (this->row != rhs.row || this->col != rhs.col)       //判断出入口是否符合迷宫大小  
return true;
return false;
}
};
//      定义当前点和起点的结构体
typedef struct
{
int x y;
int parent_x parent_y;
}QNode *QueuePtr;
typedef QNode ElemType;
typedef struct SqQueue
{
ElemType * base;
int front;
int rear;
}SqQueue;//队列结构体
typedef struct
{
int top base count;
ElemType container[19000];
}SqStack;
Status InitStack(SqStack *s);
Status StackEmpty(SqStack s);
Status InitQueue(SqQueue *Q);//初始化队列          
Status QueueEmpty(SqQueue Q);//判断队列是否为空    
Status GetHead(SqQueue Q ElemType *e);//取队列头元素  
Status EnQueue(SqQueue *Q ElemType e);//入队       
Status DeQueue(SqQueue *Q ElemType *e);//出队     
Status Push(SqStack *s ElemType e);//栈       
Status Pop(SqStack *s ElemType *e);//栈       
void game2(int **Map int Height int Width);//广度优先搜索走迷宫过的操作   
void gotoxy(int x int y); //移动光标的函数  
void paint(int **Map int x int y); //打印迷宫墙和路的函数  
void paint2(int **Map int x int y); //打印迷宫路径的函数  
int ** createMap(int Width int Height); //创建二维数组 用于储存迷宫 
void create1(int ** MAP int x int y int Height int Width int speed); //随机生成迷宫函数 
void create2(int ** MAP int x int y int Height int Width); //随机生成迷宫函数 
int get_key(); //接受方向键的函数 
void game(int **Map int Height int Width); //游戏操作函数     
void hidden(); //隐藏光标的函数   
void print(int x int y); //打印路径函数     
void printM(); //打印菜单函数     
Point getAdjacentNotVisitedNode(bool** mark Point point int m int n);//获取相邻未被访问的节点的函数   
void mazePath(void* maze int m int n const Point& startP Point endP stack& pointStack);//给定二维迷宫,求可行路径的函数(DFS) 

   ////////////////////////////////////////////////////////////////
   /**************************************************************/
   ////////////////////////////////////////////////////////////////
   //以下为主函数
int main()
{
int choose = 0;
srand((unsigned)time(NULL));
while (1)
{

评论

共有 条评论