迷宫c源代码(Mazecsourcecode)
迷宫 c++源代码(Maze c++ source code)
///
/ /程序名称:迷宫游戏
/ /编译环境:Visual C++ 6 / 2010,2011惊蛰版MP4
/ /作者:krissi zhaoh1987@ > <
/ /最后修改:2011-3-12
/ /
#包括<
#包括。H
#包括<
//
/ /定义全局变量
/ /
字节* g_imgmap = null;/ /迷宫地图
大小g_szmap;/ /迷宫地图的尺寸
图像g_imgsight(360, 280);//游戏的视野
矩形g_rtsight;/ /游戏的视野的范围
图像g_imgitem(180, 20);//地图元素
图像g_imggps;/ /迷你地图,用于显示游戏者在地图中的位置
点g_ptgps;/ /迷你地图的显示位置
大小g_szgps;/ /迷你地图的尺寸
点g_ptplayer;/ /游戏者的位置
/ /枚举地图元素,兼做元素位置的X坐标
枚举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 };
/ /枚举用户的控制命令
枚举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 };
//
/ /函数声明
/ /
welcome() /绘制游戏界面无效;
initimage() /初始化游戏图片无效;
initgame() /初始化游戏数据无效;
getmazesize() /提示用户输入迷宫大小无效;
无效makemaze(宽度,高度深度);/ /生成迷宫:初始化(注:宽高必须是奇数)
无效travelmaze(x,y);/ /生成迷宫:遍历(x,y)四周
mapitem getmazeitem(x,y);/ /获取指定坐标的迷宫元素
paint() /绘制视野范围内的迷宫无效;
int GetCmd(int * C);/ /获取用户输入的命令
无效dispatchcmd(int cmd);/ /处理用户输入的命令
onup() /向上移动无效;
onleft() /向左移动无效;
onright() /向右移动无效;
ondown() /向下移动无效;
(mapitem空隙盯值);/ /在地图中做标记
布尔checkwin();/ /检查是否到出口
布尔quit();/ /询问用户是否退出游戏
//
/ /函数定义
/ /
/ /主程序
无效main()
{
/ /初始化
这句话的意思是(640, 480);//创建绘图窗口
srand((unsigned)时间(空));//设置随机种子
/ /显示主界面
welcome();
/ /初始化
initimage();
initgame();
/ /游戏过程
int c;
而(!((GetCmd(C)= = cmd_quit)和quit()))
{
DispatchCmd(C);
paint();
如果(checkwin())
打破;
/ /延时
睡眠(100);
}
Clean / memory maze map
For (int x = 0; x < g_szMap.cx + 2; x++)
Delete[] g_imgMap[x];
Delete [] g_imgMap;
/ / closegraph
(closegraph);
}
/ / draw game interface
Void (Welcome)
{
/ / draw gradient color frame
For (int i=0; i<128; i++)
{
SetColor (RGB (0, 0, (127 - I) < 1));
Rectangle (149 - I