用C++做的拼图游戏

上传人:飞*** 文档编号:30236493 上传时间:2018-01-28 格式:DOC 页数:20 大小:1.19MB
返回 下载 相关 举报
用C++做的拼图游戏_第1页
第1页 / 共20页
用C++做的拼图游戏_第2页
第2页 / 共20页
用C++做的拼图游戏_第3页
第3页 / 共20页
用C++做的拼图游戏_第4页
第4页 / 共20页
用C++做的拼图游戏_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《用C++做的拼图游戏》由会员分享,可在线阅读,更多相关《用C++做的拼图游戏(20页珍藏版)》请在金锄头文库上搜索。

1、1青岛理工大学C+面向对象课程设计报告院(系): 计算机工程学院 专业: 计算机科学与技术 学 生 姓 名 : 班级: 学号: 题目: 拼图游戏设计 起迄日期: 2011.7.42011.7. 设计地点: 指 导 教 师: 完成日期: 2010 年 月 日2一、 课程设计目的(1)通过拼图游戏设计加强对 C+课程基础知识点的理解和掌握,培养对基础知识综合运用能力、实际分析问题能力,养成良好的编程习惯。(2)通过拼图游戏设计进一步领会程序设计的特点和应用,提高运用 C+ 以及面向对象知识解决实际问题的能力,初步掌握 MFC 编程的基本功能,掌握一种可视化编程的方法,加强对 C+面向对象程序设计的

2、理解。(3)通过拼图游戏设计掌握用 C+ 编写面向对象的实用程序的设计方法,对面向对象方法和思想增加感性的认识,学会利用 C+程序设计语言编写出一些短小、可靠的 Windows实用程序,切实提高面向对象的程序设计能力,为后续的相关课程的学习打下基础。(4)通过拼图游戏设计锻炼实际的编程能力,提高调查资料、查阅技术文献、资料以及编写软件设计文档的能力,初步接触自学编程的思想,转变死读的观念。二、 课程设计内容与实现的功能(1)课程设计内容将一张图片切分成若干小片,打乱顺序任意显示,用户通过操作各小片到正确位置以恢复原来的图像,要求有不同的等级,切分成不同的片数,完成拼图后程序可以判断是否完成,游

3、戏还应有显示原图片的功能。(2)实现的功能本程序除了实现了拼图所要求的基本功能外,还添加了背景音乐和游戏所用的时间,当游戏开始时背景音乐自动播放,时间自动增加。为了制作拼图游戏,首先要动态创建一组静态控件,这些控件将作为拼图块进行移动。用户用户需要选择拼图图像,可以使用程序中自带的图像,亦可以自己选则择图像,然后程序将根据用户选择的游戏级别设置静态控件的大小和位置,并将用户选择的图像绘制到静态控件上。当用户选择开始游戏以后,程序将隐藏右下角的拼图块,使拼图空出一个位置,用户可以使用上、下、左、右键来控制剩余拼图块的移动,在移动的过程中,用户可以通过菜单栏的游戏助手来查看原图片。当用户完成拼图时

4、,游戏提示用户胜利,这样完成了拼图游戏的设计。三、 系统分析与设计1、 系统分析(1)信息:系统主要可以处理用户的图片选择、等级选择、游戏中图片移动等信息。(2)行为:游戏开始前,用户选择图片和等级后,程序将弹出相应的信息、给出相应的变化,当游戏开始后,状态栏的时间应该按秒增加,当用户按下上下左右四个键中的某一个后,程序将判断按键并进行相应的移动操作,若用户完成整个图片,程序将弹出成功提示,并且时间停止。若用户在游戏过程中按下游戏助手按钮,则系统将给出所选图片的原图片。(3)表示:利用基于对话框的 MFC 编程,菜单选项可以选择自带的三个图片或自定义图片,可以选择初、中、高三个等级,可以选择开

5、始游戏、游戏助手和退出游戏。2、 系统设计:系统设计方案:3游戏应包括图像、级别和系统三个选择来为用户提供图片、级别和游戏开始、助手和退出等操作。当用户选择其中的某一项时,系统将给出相应的操作。为完成拼图游戏设计,需要将一张完整的图片根据等级分割成不同的个数,并将其中的一小块隐藏(此处选择右下角)来供用户移动其他的方块拼凑出原来的图片,在此过程中,系统应提供游戏助手来显示原来的图片,当完成后系统应提示成功。2.1、模块设计:拼图游戏图像 级别 系统图像 1 图像 2图像 3自定义 初级 高级中级开始游戏 退出游戏游戏助手2.2、数据结构说明:应用数组:空间数组、程序根目录路径、图片完成位置、控

6、件区域都是应用数组来存储的。2.3、算法流程图:主程序算法流程图: 图片选择算法流程图:4开始选择图片选择等级开始游戏 , 计时开始 , 播放背景音乐按上下左右键移动图片拼图成功输出 “ 恭喜你 , 获胜 ! ”计时器停止结束开始C S t r i n g s t r = m _ P a t h ;s t r = s t r + r e s 1 . b m p ;m _ p P a t h = s t r ;S e t G r a d e ( 3 ) ;结束是否主程序调用关系图:P i n T u c l a s s e sC A b o u t D l g C H e l p D l g C

7、 P i n t u A p p C P i n T u D l gC A b o u t D l gD o D a t a E x c h a n g eC H e l p D l gD o D a t a E x c h a n g eO n P a i n tC P i n T u A p pI n i t I n s t a n c e函数调用关系图:5C P i n T u D l gC P i n T u D l gD o D a t a E x c h a n g eG a m e W i nO n I n i t D i a l o g O n M e n u b m a p

8、1 / 2 / 3 O n M e n u c u s t o mS e t G r a d eO n M e n u e a s y/ m i d / h a r dO n M e n u he l p / e x i tO n M e n u s t a r tR a n d P l a c eO n P a i n tS h o w P i c t u r eO n T i m e rP r e T r a n s l a t eM e s s a g e四、系统测试与调试分析1、系统测试 测试方法:黑盒 测试技术:功能测试 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结

9、果。 测试报告:必须包含最终测试结果:列出你的测试结果,包括输入和输出。这里的测试数据应该完整和严格。功能测试应用背景:它是从使用者的角度来编写的,它关注系统提供的功能特征及其不同的处理条件;测试功能的不同处理流程(包括正常处理的和异常处理) ;一个功能测试用例仅用于测试一个功能,一个功能可能需要多个功能测试用例来覆盖。所以,报告这部分的撰写首先是要确定你所要采取的测试技术,然后对此进行介绍,最后根据所选 择的技术设计测试用例,填写好下表,其中测试用例不止一个。测试名称 拼图游戏设计测试目的 验证系统对于游戏选择的处理流程测试技术 功能测试测试说明 测试方法 黑盒测试法测试内容 图像的选择测试

10、步骤 输入正确用户名与密码 输入正确用户名与错误密码 输入错误用户名与密码测试数据 Admin,正确密码 Admin,错误密码 错误用户名,密码预期结果 正常进入系统 显示密码错误 显示用户不存在测试用例 测试结果 与预期相符 与预期相符 与预期相符3、 调试分析:程序中遇到的问题及解决方案:(1) 开始的程序对于图像 1 的选择不出现相应的结果,重新改写此段代码后出现预期结果。6(2) 开始建立了时间函数 OnTimer,但是游戏运行后时间并不增加,在开始游戏对应的函数中增加 SetTimer 函数,得到想要的结果。(3) 开始程序,拼图完成后并不给出成功的提示,后增加 GameWin 函数

11、,在每移动一步后调用此函数判断是否成功,这样,一旦用户完成拼图则程序立马自动显示出成功的相应信息。设计与实现的回顾与讨论:(1) 原本设想的程序的移动是用鼠标来实现,但在编码时感觉不大好弄,需要确定用户点击的方块到底在空白方块的哪个位置,因此就使用了键盘上的四个键来代替。(2) 设想可以用户完成拼图后将给出用户的排名,但此功能没能实现,需要加强。(3) 虽然程序中添加了背景音乐,但是没能实现用户移动图片是移动的声音,此处有待加强。四、 用户手册(1) 打开 PinTu 文件夹,双击 PinTu.dsw 标志即 打开程序,然后运行。(2) 开始程序会出现以下界面: 图 1:开始界面7(3) 用户

12、需要选择图片和等级:点击图像,选择自带的 1、2、3 或自定义图片,点击级别,选择初级、中级或高级,然后点击系统选择开始游戏,会出现类似以下界面:(图像为图象 2,等级为初级)图 2:游戏开始后的界面8(4) 用户需要根据键盘上的上下左右四个键移动方块来完成拼图,在此过程中可以点击系统里的游戏助手来显示原图片: 图 3:游戏助手9(5) 当完成拼图后系统会自动给出成功提示图 4:拼图完成界面10六、程序清单初始化:BOOL CPinTuDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./

13、 IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIco

14、n(m_hIcon, TRUE); / Set big iconSetIcon(m_hIcon, FALSE); / Set small icon/ TODO: Add extra initialization here:GetCurrentDirectory(256,m_Path); /获取程序根目录路径m_Start = FALSE;UINT array2=12301,12302;m_Statusbar.Create(this); /创建状态栏窗口m_Statusbar.SetIndicators(array,sizeof(array)/sizeof(UINT); /添加面板CRect r

15、ect;GetWindowRect(rect); /获得窗口区域m_Statusbar.SetPaneInfo(0,array0,0,rect.Width()/2);/设置面板宽度m_Statusbar.SetPaneInfo(1,array1,0,rect.Width()/2);CString gTime;m_Time = 0;gTime.Format(游戏时间:%d,m_Time); /设置游戏时间m_Statusbar.SetPaneText(0,gTime); /设置状态栏显示游戏时间m_Statusbar.SetPaneText(1,加油!); /设状态栏显示文本RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0); /显示状态栏for(int i=0;iCreate(IDD_HELP_DIALOG,this); /创建模态对话框return TRUE; / return TRUE unless you set the focus to a control重绘函数:void CPinTuDlg:OnPain

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

当前位置:首页 > 行业资料 > 其它行业文档

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