《Windows编程》大作业
题目:基于MFC的扫雷游戏
姓名:*******
学号:**********
班级:**********
专业:软件工程
院系:数学与计算机学院
指导教师:***********
基于MFC的小游戏实现
基本要求:
1、实现一个小游戏
2、实现基本游戏控制功能
3、具有游戏数据保存功能
4、界面布局合理、美观;
利用VC++程序编写扫雷游戏,以检测自己一个学期对MFC学习的情况,以及了解自己在MFC学习中的不足,巩固和提高自己对MFC的理解和掌握。掌握C++编程和调试的基本技能,进一步提高自己的动手能力,和运用C++解决实际问题的能力。
本次我做的是一个简单的扫雷的游戏,包括计算雷数、时间和扫雷的规则制定。
找出所有的非地雷的地方。如果在掀开方块的过程中,不小心翻开(踩到)藏有地雷的方块,则宣告失败(游戏结束),惟有将所有不含地雷的方块掀开,游戏才算成功。
(1)操作说明:
开局:单击“开”字按钮
挖雷:单击鼠标左键
标记/取消标记:单击鼠标右键
胜利:
所有有雷的格子都被标记,其余格子都打开。胜利后,会升起几颗信号弹,所有雷爆炸。
快捷操作:
一个格子被打开后(显示数字),且周围8个格子已有对应数量的标记。此时,鼠标左右键同时单击数字,周围未标记的格子都会打开。
(2)游戏主要功能:
(.h) 游戏框架:游戏主要逻辑,动画控制,常量定义
(.h) 位图,按钮
时钟处理
工具包
(.h) 数据结构:队列
(.h) 跟踪打印,用于调试程序
游戏常量定义
说明文件:
MFC部分:
(.h) 操作说明对话框
(.h) 设置对话框
(.h) 输入姓名对话框
(.h) 排行榜对话框
(.h) MFC应用程序类
(.h) MFC对话框类
(3)制作要点
1. 游戏界面怎样表示(即w*h个格子)
2. 格子的状态表示:打开,被标记
3. 打开一个空格子,与其相连的空格全部打开
4. 信号弹,爆炸效果的动画处理。
5. 对话框的打开,关闭
6. 对话框控件的数据设置,刷新
(1)位图初始化
(hInstance,IDB_BITMAP_START);
(anvas,hdcmem);
(1,PICW,PICH);
(hInstance,IDB_BITMAP_BACK);
(anvas,hdcmem);
(1,200,200);
(hInstance,IDB_BITMAP_ANI);
(anvas,hdcmem);
(ANI_PIC_NUM,20,20);
(hInstance,IDB_BITMAP_BOMB);
(anvas,hdcmem);
(sizeof(bmBomb_w)/sizeof(int),bmBomb_w,bmBomb_h,PIC_HAVE_MASK)
(2)定义参数及规格
#define MAP_Y 80
#define TIME_X 260
#define TIME_Y 15
#define TEXT_MINE_X 260
#define TEXT_MINE_Y 45
//初级中级高级
enum GAME_LEVEL{
LEVEL0,
LEVEL1,
LEVEL2,
};
//不同级别的地图边长
enum GAME_LEVEL_SIZE{
LEVEL0_SIZE=9,
LEVEL1_SIZE=14,
LEVEL2_SIZE=20,
};
//不同级别雷的数量
enum MINE_NUM{
MINE_NUM0=10,
MINE_NUM1=30,
MINE_NUM2=55,
};
#define MIN_W 9
#define MIN_H 9
//最大地图
windows大实验报告 (MFC扫雷游戏) 来自淘豆网m.daumloan.com转载请标明出处.