1、 Windows 程序设计 课程考核报告 班 级: 学 号: 姓 名: 得 分: 2013 年 12 月 15 日 1.设计目的及要求 . 3 1.1 设计目的及问题描述 . 3 1.2 设计要求 3 1.3 软件、硬件环境 3 2.课程设计步骤 4 3. 课程设计内容. 15 3.1 概要设计. 15 3.1.1 程序总体框架描述 15 3.1.2 程序常用类声明 . 16 3.2 主要技术 . 17 3.3 系统设计结果 (界面截图、操作流程) 17 4.设计总结 . 19 4.1 遇到的问题及如何解决 19 4.2 体会 19 5.源代码 . 20 1.1.设计目的及要求设计目的及要求
2、1.11.1 设计目的及问题描述设计目的及问题描述 利用 VC+程序编写扫雷游戏,以检测自己一个学期对 MFC 学习的情况,以 及了解自己在 MFC 学习中的不足,巩固和提高自己对 MFC 的理解和掌握。掌握 C+编程和调试的基本技能,进一步提高自己的动手能力,和运用 C+解决实际 问题的能力。 本次我做的是一个简单的扫雷的游戏,包括计算雷数、时间和扫雷的规则制 定。 1.21.2 设计要求设计要求 找出所有的非地雷的地方。如果在掀开方块的过程中,不小心翻开(踩到) 藏有地雷的方块,则宣告失败(游戏结束),惟有将所有不含地雷的方块掀开, 游戏才算成功。 游戏规则: 首先按右键开始,可以通过界面
3、快捷键(如图笑脸),也可以通 过菜单重新开始。接着左键按下的数字周围一圈八格中雷的个数。当确定小方框 里面是一个雷,则用右键按下有一个小旗出现。当发现此处不是一个雷时,就可 以再次按下。结束时只需要按标题栏的关闭键或菜单中的文件下的退出。当踩到 一个雷时,程序结束。 1.31.3 软件、硬件环境软件、硬件环境 软件:Windows 7 操作系统,Microsoft Visual C+6.0 硬件:Inter(R) Core(TM) i3-2330M CPU 2.20GHz 2.2.课程设计步骤课程设计步骤 (1)添加位图 前十二幅是在雷区的,后四幅是按钮。 位图的 ID 号: 按扭位图: 30
4、*30 IDB_ANNIU1、IDB_ANNIU 2 、IDB_ANNIU3、 IDB_ANNIU4 雷区位图: 14*14 ID 号按下图依次为:IDB_BITMAP14。 。 。 。 。 。 IDB_BITMAP25 (2)添加全局变量 public: int leftnum;/剩下雷数 int leinum;/雷数 int jieshu;/结束 short second;/计时 int secondstart;/开始计时 CBitmap m_Bitmap12; CBitmap m_anniu4; int m_RowCount;/行 int m_ColCount;/列 wkh wkh505
5、0;/最大雷区 void leizero(); virtual CWkhView(); (3)画初始界面 (4)添加函数 1)void CWkhView:leizero()/扫描,如果是已经被按下且雷数为 0,显示 它周围的八个格,并重 void CWkhView:leizero() for(int i=0;i=10) secondstart=1; int a=(point.x-10)/15; int b=(point.y-50)/15; if(wkhab.weitu=0|wkhab.weitu=3) if(wkhab.shumu=-1) jieshu=1; KillTimer(1); Inv
6、alidate(); MessageBox(“你失败了“); else wkhab.weitu=1; CRect rect; rect.left=a*15+10; rect.right=a*15+25; rect.top=b*15+50; rect.bottom=b*15+65; InvalidateRect( CView:OnLButtonDown(nFlags, point); 3) void CWkhView:OnLButtonUp(UINT nFlags, CPoint point) /鼠标左键松开 void CWkhView:OnLButtonUp(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call default CD