资源简介
迷宫的生成与自动寻路; 详细的介绍了迷宫的生成,还有求解。 代码有注释
好好学习天天向上
希望大家珍惜大学时光
好好学习天天向上
希望大家珍惜大学时光
代码片段和文件信息
#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)
{
- 上一篇:树莓派实时传输图像到pc机
- 下一篇:OneNET平台EDP协议C语言SDK
相关资源
- AES s盒生成代码
- 数据结构——迷宫
- c语言迷宫算法
- 破圈法构造最小生成树
- 背包问题之贪婪算法求解C语言源代码
- 求解无向图中任意两点之间的所有路
- 老鼠走迷宫数据结构课程设计
- 生成指定长度的Wav空白文件--
- c语言回溯法走迷宫的源码
- 数据结构之迷宫求解完整代码(C语言
-
mfc通过xm
l文件生成word文档 - 哈夫曼最小生成树及最短路径代码
- 《C语言课程设计》 学生成绩管理系统
- 算法部分背包问题的求解
- 学生成绩管理系统c++ csdn
- C++ 生成JPEG图片源代码
- C++动态规划求解TSP问题备忘录方法
- 实现追赶法求解三对角矩阵方程组的
- c++写的学生成绩管理系统
- c++面向对象课程设计报告_(学生成绩
- 栈实现迷宫
- 逆波兰式生成程序
- 数据结构 C语言 迷宫问题求解 栈
- A*算法解迷宫
- 偏序关系的哈斯图求解
- 系统可靠性中网络最小路集求解程序
- 完全Bresenham算法生成椭圆
- 克鲁斯卡尔最小生成树算法
- VTK源码,读取obj、stl点云,生成重建
- QR方法求解全部特征值的程序包括实数
评论
共有 条评论