# 迷宫Maze游戏 **Repository Path**: YanKeyon/maze_game ## Basic Information - **Project Name**: 迷宫Maze游戏 - **Description**: 使用C++语言设计,基于graphics图形库设计的迷宫游戏 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-12-08 - **Last Updated**: 2022-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 迷宫Maze游戏 ## 介绍 使用C++语言设计,基于graphics图形库设计的可视化迷宫游戏 ## 设计分析 ### 实现栈的数据结构 存储结构: 二维坐标(x,y) ![](https://keyon-photo-1256901694.cos.ap-beijing.myqcloud.com//markdown20191208165823.png) 基本操作: 初始化栈InitStack() 入栈Push() 出栈Pop() 获取栈顶元素GetTop() 判断栈是否为空StackEmpty() ### 绘制图像(动物、砖墙)美化程序 使用graphics库中的图像类 ![](https://keyon-photo-1256901694.cos.ap-beijing.myqcloud.com//markdown20191208165845.png) 使用loadimage() 函数载入图片到IMAGE类 ![](https://keyon-photo-1256901694.cos.ap-beijing.myqcloud.com//markdown20191208165856.png) 使用putimage() 函数将该图像类 绘制在画布上 ![](https://keyon-photo-1256901694.cos.ap-beijing.myqcloud.com//markdown20191208165904.png) ### 使用迷宫生成Prim算法随机生成高质量迷宫 1. 让迷宫全是墙. 2. 选一个单元格作为迷宫的通路(一般选择起点),然后把它的邻墙放入列表 3. 当列表里还有墙时 ①.从列表里随机选一个墙,如果这面墙分隔的两个单元格只有一个单元格被访问过 1).那就从列表里移除这面墙,即把墙打通,让未访问的单元格成为迷宫的通路 ​ 2).把这个格子的墙加入列表 ②.如果墙两面的单元格都已经被访问过(都打通了),那就从列表里移除这面墙