扫雷游戏程序设计课程设计报告

上传人:桔**** 文档编号:513875183 上传时间:2022-12-17 格式:DOC 页数:23 大小:669.01KB
返回 下载 相关 举报
扫雷游戏程序设计课程设计报告_第1页
第1页 / 共23页
扫雷游戏程序设计课程设计报告_第2页
第2页 / 共23页
扫雷游戏程序设计课程设计报告_第3页
第3页 / 共23页
扫雷游戏程序设计课程设计报告_第4页
第4页 / 共23页
扫雷游戏程序设计课程设计报告_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《扫雷游戏程序设计课程设计报告》由会员分享,可在线阅读,更多相关《扫雷游戏程序设计课程设计报告(23页珍藏版)》请在金锄头文库上搜索。

1、课 程 设 计设计题目 扫雷游戏程序设计 学生姓名 学 号 专业班级 指导教师 2013 年 11 月 5 日设计题目扫雷游戏程序设计成绩课程设计主要内容扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。参考系统自带的扫雷程序,自行开发设计一款扫雷游戏。要求:(1)鼠标左击排雷,右击插小旗,打问号; (2)方格里面的数字表示方格周围的雷数;(3)能够显示未标记雷数和游戏用时;(4)雷区上面的小脸可以变化,显示微笑,惊讶,痛苦,胜利。

2、在任何情况下单击小脸可以重新开始游戏; (5)可进行游戏难度的设定:包括预定义的难度级别(雷区行数,列数和雷数),和自行定义雷区行数,列数和雷数的功能;(6)排行榜功能,扫雷成功时候,根据游戏用时更新排行榜。指导教师评语建议:从学生的工作态度、工作量、设计(论文)的创造性、学术性、实用性及书面表达能力等方面给出评价。签名: 200 年 月 日合肥工业大学课程设计任务书一. 设计任务 (1)鼠标左击排雷,右击插小旗,打问号; (2)方格里面的数字表示方格周围的雷数;(3)能够显示未标记雷数和游戏用时;(4)雷区上面的小脸可以变化,显示微笑,惊讶,痛苦,胜利。在任何情况下单击小脸可以重新开始游戏;

3、 (5)可进行游戏难度的设定:包括预定义的难度级别(雷区行数,列数和雷数),和自行定义雷区行数,列数和雷数的功能;(6)排行榜功能,扫雷成功时候,根据游戏用时更新排行榜。二. 具体设计(一)、设计思路扫雷游戏是很经典也很有趣的一款游戏,这次的游戏程序设计要求设计出功能与原游戏相近的一款游戏,首先定义变量和类要画出游戏方格以及位图,设计游戏等级,等级越高方格越多雷数也越多;然后设置随机布雷以保证每次重新开始游戏都有不同的雷区地图;另外定义鼠标左击扫雷,左击标记周围埋雷情况,右击奇数次排雷偶数次取消上次排雷,以及扫雷第一次左击不能扫到雷。类名成员类别类型成员名描述CMyView属性intleftn

4、um剩下雷数intleinum雷数intn定义格数intjieshu结束intrealnum真实雷数intsecondstart开始计时intm_RowCount行intm_ColCount列shortsecond计时CBitmapm_Bitmap12位图数组CBitmapm_anniu4按钮数组Leilei5050最大雷区方法afx_msg voidOnTimer(UINT nIDEvent)计时器函数afx_msg voidOnLButtonDown(UINT, CPoint)左键按下消息afx_msg voidOnStart()开始函数afx_msg voidOnLButtonUp(UI

5、NT, CPoint )左键抬起消息afx_msg voidOnRButtonDown(UINT, CPoint)右键按下消息afx_msg voidOnEasy()简单模式函数afx_msg voidOnMiddle()中等模式函数afx_msg voidOnHard()困难模式函数afx_msg intOnCreate(LPCREATESTRUCT)创建窗口函数Lei属性intweitu标志位图intshumu标志状态(二)、设计表示:(三)、实现功能1、鼠标左击排雷,右击插小旗,打问号; 2、方格里面的数字表示方格周围的雷数;3、能够显示未标记雷数和游戏用时;4、雷区上面的小脸可以变化,

6、显示微笑,惊讶,痛苦,胜利。在任何情况下单击小脸可以重新开始游戏; 5、可进行游戏难度的设定:包括预定义的难度级别(雷区行数,列数和雷数);6、任何时候开始游戏第一次点击不会扫到雷。由于时间等原因未完成功能:排行榜和自行定义雷区行数,列数和雷数功能。(四)、详细设计 1、添加位图 前十二幅是在雷区的,后四幅是按钮。为了便于加载,必须各自保证其连续性。分别表示游戏进行的状态、结果胜利或触雷。2、预设等级方格数雷数变化void CMywqq20112074View:OnEasy() /初级m_RowCount=10;/行数10 m_ColCount=10;/列数10 leinum=10; real

7、num=leinum;SetTimer(1,50,NULL);/ TODO: Add your command handler code heresecond=0;/计时secondstart=0;/1时开始计时/num=0; leftnum=leinum;/剩余雷数jieshu=0;/jieshu=1时停止int aa=0;/初始化0for(int i=0;im_RowCount;i+)for(int j=0;jm_ColCount;j+)leiij.shumu=0;leiij.weitu=0;/设置10个雷CMywqq20112074View:OnMiddle() /中级m_RowCoun

8、t=15;/行数15 m_ColCount=15;/列数15 leinum=40; realnum=leinum;SetTimer(1,50,NULL);/ TODO: Add your command handler code heresecond=0;/计时secondstart=0;/1时开始计时/num=0; leftnum=leinum;/剩余雷数jieshu=0;/jieshu=1时停止int aa=0;/初始化0for(int i=0;im_RowCount;i+)for(int j=0;jm_ColCount;j+)leiij.shumu=0;leiij.weitu=0;/设置

9、40个雷void CMywqq20112074View:OnHard() /高级m_RowCount=25;/行数25 m_ColCount=16;/列数16 leinum=80; realnum=leinum;SetTimer(1,50,NULL);/ TODO: Add your command handler code heresecond=0;/计时secondstart=0;/1时开始计时/num=0; leftnum=leinum;/剩余雷数jieshu=0;/jieshu=1时停止int aa=0;/初始化0for(int i=0;im_RowCount;i+)for(int j

10、=0;jm_ColCount;j+)leiij.shumu=0;leiij.weitu=0;/设置80个雷doint k=rand()%m_RowCount;int l=rand()%m_ColCount;if(leikl.shumu!=-1)leikl.shumu=-1; aa+; while(aa!=leinum); 3、 第一次点击不会扫到雷if(leiab.weitu=0|leiab.weitu=3) for(;n=0&leiab.shumu=-1;) /踩到第一个雷int aa=0;/初始化0for(int i=0;im_RowCount;i+)for(int j=0;jm_ColC

11、ount;j+)leiij.shumu=0;leiij.weitu=0;doint k=rand()%m_RowCount;int l=rand()%m_ColCount;if(leikl.shumu!=-1)leikl.shumu=-1; aa+; while(aa!=leinum); /给方格赋值for(int a=0;am_RowCount;a+)for(int b=0;bm_ColCount;b+)if(leiab.shumu=0)for(int c=a-1;ca+2;c+)for(int d=b-1;d=0&c=0&dm_ColCount)if(leicd.shumu=-1)leiab.shumu+;4、 鼠标右击插小旗,打问号第一次用右键单击某个区域时,该区域上插上一面小红旗,此时单击左键没有任何变化,第二次用右键单击时恢复原状。 /判断显示什么位图 /weitu=1已按下的数字区 /weitu=2显示旗 /weitu=3显示问号 for(int a=0;am_RowCount;a+) for(int b=0;bm_ColCount;b+)if(leiab.weitu=1) Dc.SelectObject(m_Bitmapleiab.shumu);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号