资源简介
走迷宫的游戏。包括迷宫的随机创建和控制移动等。含VC6源代码,并且代码里面的注释很详细(编译前请自己安装EasyX库)

代码片段和文件信息
///////////////////////////////////////////////////
// 程序名称:迷宫 游戏
// 编译环境:Visual C++ 6.0,EasyX 2011惊蛰版
// 作 者:krissi
// 最后修改:2011-3-12
//
#include
#include
#include
//////////////////////////////////////////////////////
// 定义全局变量
//
BYTE** g_imgMap = NULL; // 迷宫地图
SIZE g_szMap; // 迷宫地图的尺寸
IMAGE g_imgSight(360 280); // 游戏的视野
RECT g_rtSight; // 游戏的视野的范围
IMAGE g_imgItem(180 20); // 地图元素
IMAGE g_imgGPS; // 迷你地图,用于显示游戏者在地图中的位置
POINT g_ptGPS; // 迷你地图的显示位置
SIZE g_szGPS; // 迷你地图的尺寸
POINT g_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 };
//////////////////////////////////////////////////////
// 函数声明
//
void Welcome(); // 绘制游戏界面
void InitImage(); // 初始化游戏图片
void InitGame(); // 初始化游戏数据
void GetMazeSize(); // 提示用户输入迷宫大小
void MakeMaze(int width int height); // 生成迷宫:初始化(注:宽高必须是奇数)
void TravelMaze(int x int y); // 生成迷宫:遍历 (x y) 四周
MAPITEM GetMazeItem(int x int y); // 获取指定坐标的迷宫元素
void Paint(); // 绘制视野范围内的迷宫
int GetCmd(int* c); // 获取用户输入的命令
void DispatchCmd(int cmd); // 处理用户输入的命令
void OnUp(); // 向上移动
void OnLeft(); // 向左移动
void OnRight(); // 向右移动
void OnDown(); // 向下移动
void OnMark(MAPITEM value); // 在地图中做标记
bool CheckWin(); // 检查是否到出口
bool Quit(); // 询问用户是否退出游戏
//////////////////////////////////////////////////////
// 函数定义
//
// 主程序
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; i<128; i++)
{
setcolor(RGB(0 0 (127 - i) << 1));
rectangle(149 - i 109 - (i >> 1) 490 + i 370 + (i >> 1));
}
// 设置字体样式
setcolor(WHITE);
setbkmode(TRANSPARENT);
// 绘制标题
setfont(36 0 “宋体“);
outtextxy(248 40 “迷 宫“);
// 绘制操作说明
setfont(12 0 “宋体“);
outtextxy(50 382 “控制说明:“);
outtextxy(74 400 “方向键或 A/S/D/W:移动“);
outtextxy(74 418 “空格、Y、G:在地图上做红、黄、绿色 M 标记“);
outtextxy(74 436 “C:清除地图上的标记“);
outtextxy(74 454 “ESC:退出程序“);
}
// 初始化游戏图片
void InitImage()
{
// 预绘制游戏图片到 IMAGE 缓存(可以修改为加载图片以获得更好效果)
SetWorkingImage(&g_imgItem);
cleardevice();
// 绘制 Player
setorigin(MA
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 12356 2011-05-31 15:08 main.cpp
文件 4260 2011-05-31 15:10 Maze.dsp
文件 532 2011-05-31 15:09 Maze.dsw
文件 90112 2011-05-31 15:10 Maze.exe
目录 0 2011-05-31 15:10 Release\
文件 90112 2011-05-31 15:10 Release\Maze.exe
- 上一篇:家庭财务系统,可在devc++上直接运行
- 下一篇:传智播客c/c++教程
相关资源
- C流程图生成器,用C语言代码 生成C语
- 数据结构,迷宫问题C语言版源代码
- stm32库函数代码自动生成器V1.2
- 二维码生成BMP
- Linux c语言 学生成绩管理系统
- 学生成绩管理系统.c
- 学生成绩管理系统(c源码)
- 走迷宫(自动生成迷宫版本!)
- VC++MFC课程设计的学生成绩管理系统
- 学生成绩管理系统-----C++
- c++迷宫最短路径寻径算法
- 自动解决智能拼图,A*算法+生成可解
- OpenGL迷宫山东大学图形学实验三
- c++版学生成绩管理系统实验报告及源
- EAN13条码生成(C语言+VS2010)[包含EA
- 格雷码图片生成与保存C++实现代码
- C++学生成绩管理系统 2018
- C语言学生成绩管理信息系统
- c++,fp-growth实现两部分fp构建和fp-gr
- C语言自动走迷宫程序代码
- C++学生成绩管理系统( 毕业设计)
- C++学生成绩管理系统
- MP4文件切片生成TS和M3U8文件
- 学生成绩管理系统 (C语言版)课程设
- 生成RSA密钥对
- C++动态生成机器码
- 课程设计--C语言学生成绩管理系统内
- 学生成绩管理系统MFC版
- 流程图生成器C语言
- 用“破圈法”求解带权连通无向图的
评论
共有 条评论