C++语言程序设计课程设计扫雷.docx

上传人:h**** 文档编号:26936385 上传时间:2022-07-20 格式:DOCX 页数:10 大小:16.01KB
返回 下载 相关 举报
C++语言程序设计课程设计扫雷.docx_第1页
第1页 / 共10页
C++语言程序设计课程设计扫雷.docx_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《C++语言程序设计课程设计扫雷.docx》由会员分享,可在线阅读,更多相关《C++语言程序设计课程设计扫雷.docx(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C+语言程序设计课程设计扫雷 辽宁工业大学 C+语言程序设计课程设计(论文)题目:扫雷 院(系):软件学院 专业班级:软件工程111班 学号: 学生姓名: 指导教师:翟宝峰 教师职称:副教授 起止时间: 课程设计(论文)任务及评语 目录 第1章课程设计目的与要求 设计目的 将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼: (1)进一步巩固、加深学生所学专业课程C+语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。

2、 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 (3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。 (4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 (5)掌握面向对象程序设计的方法。 (6)熟练掌握C+语言的基本语法,灵活运用各种数据类型。 (7)进一步掌握在集成环境下如何调试程序和修改程序。 硬件要求能运行Windows 操作系统的微机系统。C+语言应用程序开发软件使用:VC+ 系统,或其他C+语言应用程序开发软件。 预备知识 熟悉C+语言程序设计的基

3、本知识及VC+编辑器的使用方法。 设计要求 1.仔细分析设计题目,画出程序流程图,编写程序源代码。 2.积极上机调试源程序,增强编程技巧与调程能力。 3.认真书写课程设计预习报告,课程设计说明书。 4.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。 第2章课程设计内容 课题描述 扫雷最原始的版本可以追溯到1973年一款名为“方块”的游戏。不久之后,“方块”被改写成了游戏Rlogic。在Rlogic里,玩家的任务是作为美国海军陆战队队员,为指挥中心探出一条没有地雷的安全路线,如果路全被地雷堵死就算输。两年后,汤姆安德森在Rlogic的基础上又编写出了游戏

4、地雷,由此奠定了现代扫雷游戏的雏形。1981年,微软公司的罗伯特和卡特两位工程师在Windows 系统上加载了该游戏,扫雷游戏才正式在全世界推广开来。 本课程设计实现类似于Windows操作系统自带的扫雷游戏。在课程设计中,系统开发平台为Windows XP,程序设计语言采用Visual C+,程序运行平台为Windows 2000/XP。在程序设计中,把整个雷区看成一个二维数组,把雷方块定义为具有所在雷区二维数组的行和列、当前状态、方块属性、历史状态的结构体。整个游戏程序包括了布雷、扫雷过程和结果三个阶段,在处理鼠标响应事件中伴随着GDI绘图。程序通过调试运行,实现了设计目标,能够同时满足扫

5、雷游戏初学者和高手的需要。 本章的课程设计使用C+语言编写一个与其类似的扫雷游戏。具体要求如下: (1)选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。 (2)用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下无雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。 (3)如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。 (4)扫雷胜利后,显示游戏胜利,失败后显示再来一局。 (5)

6、用户可以改变游戏界面的颜色外观。 (6)游戏中用户可以通过菜单重新开始新游戏。 1.类的设计 本程序设计了CMineWnd类、CDlgCustom类、bomb类、cview类、CDlgHero类、CDlgNewRecord类等。 CMineWnd类作用:用于扫雷开始运行等操作。 cbombview类作用:扫雷工作补充。 bomb类作用:封装每颗雷的相关属性。 cview类作用:完成扫雷的大部分工作。 CDlgHero类作用:等级英雄榜。 CDlgNewRecord类作用:重新开始新的游戏。 基类为CMineWnd类、bomb类、cview类。 派生类CDlgHero类由CDialog应用程序类

7、继承,cbombview类由cview类继承。 (1)定义类bomb,封装每颗雷的相关属性。 class bomb public: 统总体流程图 图系统总体流程图 1.程序编程中用到的类函数简单介绍: CchildView:其中定义了 Drawboard对扫雷棋盘进行了绘制 Drawbutton将资源类中存有的脸的图片进行裁减选择加入到规定位置。Drawcell绘制雷区(即在资源类的cell的15个图片中根据需要选择标志,雷图 标,以及数字标实通过裁减放到规定的坐标处) DrawLCD绘制记时器,调用资源类中的num数字图片用于记时 Expand当鼠标点击处周围无雷时扩大范围 Gameover

8、游戏结束时的定义 Inbound对游戏鼠标点击区域的限制 OnCreate建立游戏 OnGameCustomize游戏自定义设置 OnGameNew游戏级别的初始化 OnGameRecord扫雷英雄榜的判断记录 OnLButtonDown左键按下时触发的动作和计算机所做的判断 OnLButtonUp左键弹起时触发的动作和计算机所做的判断 OnRButtonDown右键按下时触发的动作和计算机所做的判断 OnRButtonUp右键弹起时触发的动作和计算机所做的判断 OnTimer记时器设置 OnUpdateGameLevel修改游戏等级 OnUpdateGameMark修改游戏标志 wm_lbu

9、ttomdown消息响应函数onlbuttomdown是处理用户输入的主要执行者,函数首先判断点中位置是否是雷,是则关闭定时器,销毁原位图按钮,创建一对应正常和被炸死两种状态的新位图按钮,并调用setstate将其设置为pushdown(小人哭的状态),将m_bgameover,置为true标志游戏结束,否则先调用setstate 设置位图按钮为pushdown (小人笑的状态),并在onlbuttomup中设置位图按钮为正常状态,然后调用caculate函数记下周围雷的数目,最后调用invalidate使客户区无效,迫使ondraw函数重绘客户区域,在调用invalidate时不应重画背景,

10、避免闪烁,这样就完成了在雷区按下左键的响应动作。 wm_rbuttomdown消息响应函数onlbuttomdown将被认为有雷位置的置一,减少左上角的雷记数,然后判断是否真正全部排完了雷,是则结束游戏弹出input对话框,让扫雷的人输入姓名,在响应idok通知码时将其写入注册表,没有全部排完则使客户区无效,迫使ondraw函数重绘客户区域完成在雷区按下右键的动作。 ondraw函数在每次点击左键或右键时都会被调用重雷区和控制区域,因为点击情况的复杂性和雷属性的多元化导致ondraw函数需要精心设计。 函数caculate计算某个雷周围的雷数,根据前面的分析知道,计算某个雷周围的雷数本身就是一

11、个递归过程,在编制时应注意递归的边界条件,稍不注意会陷入无穷递归而耗尽了系统的资源。 2. 系统结构图如图所示。 图系统结构图 3.雷区设计函数流程图如图所示。 图雷区设计函数流程图 4布雷函数流程图 随即获取一个状态为非雷的点,将它的属性标志为雷,重复这样的工作,直到布下足够的雷为止,其函数流程图如图所示。 图布雷函数流程图 在CMineWnd类中添加游戏的布雷模块的处理函数,该函数的实现如下。 void CMineWnd:LayMines(UINT row, UINT col) Attrib != ATTRIB_MINE) m_pMinesij.uAttrib = ATTRIB_MINE;

12、/程序名:扫雷游戏;程序作者:孙庆贺;程序版本:;完成时间:; /源文件,类的实现文件: #include #include #include #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE = _FILE_; #endif BEGIN_MESSAGE_MAP(CMineApp, CWinApp) END_MESSAGE_MAP() CMineApp:CMineApp()CMineApp theApp; const CString className = _T(MineClass); BOOL

13、 CMineApp:InitInstance() SetRegistryKey(CSER_513_2); m_uXMineNum=GetProfileInt(GAME_SETTING, CUSTOM_XNUM, PRIMARY_XNUM); m_uYMineNum=GetProfileInt(GAME_SETTING, CUSTOM_YNUM, PRIMARY_YNUM); /鼠标左键点击事件的关键代码如下所示。 void CMineWnd:OnLButtonUp(UINT nFlags, CPoint point) 飞倩编着C+面向对象程序设计上海:电子工业出版社 2.吴华恩主编C+程序设计北京:机械工业出版社 3.洪永清主编面向对象的系统分析天津:天津大学出版社 4.谭浩强主编面向对象建模武汉:科技大学出版社 5.邵伟忠主编常用算法程序集天津:人民大学出版社 6.徐世亮编着C+大学教程北京:人民邮电出版社 7.徐孝凯编着C+语言程序设计北京:清华大学出版社 8.吴访升编着C+程序设计北京:机械工业出版社 主编C/C+程序设计北京:中国铁道出版社 10.徐静芬主编C+语言程序设计辽宁:广播大学出版社

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

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com