- 95
- 0
- 约9.97千字
- 约 16页
- 2017-01-30 发布于重庆
- 举报
走迷宫程序(含自动迷宫生成)
迷宫程序。执行效果如下:程序间有足够多的注释,就不多作介绍了。代码如下:///////////////////////////////////////////////////// 程序名称:迷宫 游戏// 编译环境:Visual C++ 6.0 / 2010,EasyX 2011惊蛰版// 作 者:krissi zhaoh1987@// 最后修改:2011-3-12//#include graphics.h#include conio.h#include time.h//////////////////////////////////////////////////////// 定义全局变量//BYTE**g_imgMap = NULL;// 迷宫地图SIZEg_szMap;// 迷宫地图的尺寸IMAGEg_imgSight(360, 280);// 游戏的视野RECTg_rtSight;// 游戏的视野的范围IMAGEg_imgItem(180, 20);// 地图元素IMAGEg_imgGPS;// 迷你地图,用于显示游戏者在地图中的位置POINTg_ptGPS;// 迷你地图的显示位置SIZEg_szGPS;// 迷你地图的尺寸POINTg_ptPlayer;// 游戏者的位置// 枚举地图元素,兼做元素位置的 x 坐标enum MAPITEM { MAP_WALL = 0, MAP_PLAYER = 20, MAP_GROUND = 40, MAP_MARKRED = 60, MAP_MARKGREEN = 80, MAP_MARKYELLOW = 100, MAP_ENTRANCE = 120, MAP_EXIT = 140, MAP_OUTSIDE = 160 };// 枚举用户的控制命令enum CMD { CMD_QUIT = 1, CMD_UP = 2, CMD_DOWN = 4, CMD_LEFT = 8, CMD_RIGHT = 16, CMD_MARKRED = 32, CMD_MARKGREEN = 64, CMD_MARKYELLOW = 128, CMD_CLEARMARK = 256 };//////////////////////////////////////////////////////// 函数声明//voidWelcome();// 绘制游戏界面voidInitImage();// 初始化游戏图片voidInitGame();// 初始化游戏数据voidGetMazeSize();// 提示用户输入迷宫大小voidMakeMaze(int width, int height);// 生成迷宫:初始化(注:宽高必须是奇数)voidTravelMaze(int x, int y);// 生成迷宫:遍历 (x, y) 四周MAPITEMGetMazeItem(int x, int y);// 获取指定坐标的迷宫元素voidPaint();// 绘制视野范围内的迷宫intGetCmd(int* c);// 获取用户输入的命令voidDispatchCmd(int cmd);// 处理用户输入的命令voidOnUp();// 向上移动voidOnLeft();// 向左移动voidOnRight();// 向右移动voidOnDown();// 向下移动voidOnMark(MAPITEM value);// 在地图中做标记boolCheckWin();// 检查是否到出口boolQuit();// 询问用户是否退出游戏//////////////////////////////////////////////////////// 函数定义//// 主程序void main(){// 初始化initgraph(640, 480);// 创建绘图窗口srand((unsigned)time(NULL));// 设置随机种子// 显示主界面Welcome();// 初始化InitImage();InitGame();// 游戏过程int c;while( !((GetCmd(c) == CMD_QUIT) Quit()) ){DispatchCmd(c);Paint();if (CheckWin())break;// 延时Sleep(100);}// 清理迷宫地图占用的内存for(int x = 0; x g_szMap.cx + 2; x++)delete[] g_imgMap[x];delete [] g_imgMap;// 关闭图形模式closegraph();}// 绘制游戏界面void Welcome(){// 绘制渐变色外框for(int i=0; i128; i++){setc
原创力文档

文档评论(0)