欢迎来到天天文库
浏览记录
ID:19640180
大小:690.01 KB
页数:37页
时间:2018-10-04
《课程设计连连看游戏》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程设计报告课程名称:面向对象程序设计C++设计题目:连连看游戏专业:计算机科学与技术姓名:学号:指导教师:李晓虹2016年1月1日1、系统需求分析本程序是一款连连看游戏,该程序应该具备以下功能:(1)该游戏界面为黑色背景加方格图片类型,不同的图片上有不同的图案,位置为随机打乱。(2)游戏规则为将相同图案的图片进行连接,但需满足只能至少单边无阻呈直线连接,否则无效。一旦成功连接两个相同的图案,则这两个图案消失,如此反复直到所有的图片消失,游戏通关。(3)图片的位置具有随机性,但要求都是必须成对出现。1.1功能需求(1)主界面需求显示玩家当前关卡数及得分
2、数提供“新游戏”按钮,单击后可以重新开始游戏提供“退出”按钮,单击后可以退出程序提供“帮助”按钮,单击后可以弹出制作人信息,联系方式等(2)消除需求玩家点击图案,图案会变色以提示被选中;此时再点击另一个图案,如果图案相同,则这两个图案消失;此外,两个图案中间必须无其他图片阻碍才有效,消除规则如下:一条直线相连:图1-1两条直线相连:图1-2三条直线相连:图1-3(3)新游戏需求当玩家点击新游戏按钮时,游戏将重新生成新的图案并重排,且重排的方式是随机的。(4)帮助当玩家点击帮助时,将弹出制作者信息以及秘籍。(5)退出点击退出按钮,将退出程序。1.2时间性
3、能需求响应速度:3秒以内客户端:可执行文件,点开即可运行,方便快捷。1.3界面友好需求系统提供统一的界面操作方式。要求界面操作方式美观大方,布局合理,功能完善,整个操作简单,对于初级用户容易上手。良好的操作界面可以给游戏玩家带来更好地游戏体验和愉悦的心情。复杂的游戏界面会造成玩家的负担,所以在设计程序时,功能以及各种操作都应当尽量简单明了。1.4系统可用性需求系统操作快捷,内容完整是保证用户进行使用的基础。因此,应准确而详细的理解各用户区的特征,任务和使用环境,在“有效性”、“效率”等各个方面满足各类用户对系统的需要。2、系统总体设计2.1总体系统图此
4、系统是运用VC++6.0中MFC框架的多文档视图开发的,文档--视图结构提供的应用程序接口有利于进行窗口操作编程。此游戏引擎包含在视图类中。有时引擎和视图是一体的,并且可能无可避免,因为视图需要为引擎处理用户输入和绘图。游戏程序设计一般都采用面向对象的设计模式,WindowsAPI提供了一个简单的图像显示接口,利用MFC的多文档视图结构的面向对象设计模式。此系统的总体系统图如下:连连看游戏游戏玩家界面显示菜单功能模块图像处理模块鼠标操作命令Windows操作系统Vc++6.0平台API接口和c++图2-1 系统功能图2.2功能模块总体设计(1)鼠标操
5、作模块 玩家在玩游戏时需要运用鼠标与游戏系统进行交互实现是运用MFC中的鼠标事件触发的.鼠标进行交互的事件主要有两个,一个是用户点击游戏场景中的图片时触发的事件。另外一种是用户点击菜单栏上的菜单按钮时说触发的鼠标事件。 当用户点击游戏场景中的图像块时就会响应鼠标的OnLButtonDown事件。当用户点击菜单栏上的菜单命令时就会触发相应的菜单命令对应的相应的事件。 (2)图像处理模块 程序运行后,用户通过游戏菜单的新游戏命令开始进入游戏,在这个模块里要把资源文件中的图片进行处理然后加载到游戏场景中程序中是通过DrawMap()方法实现的。其中用到的AP
6、I函数主要是是BitBlt,他的主要功能是将某一内存块的数据传送到另一内存块。(3) 菜单模块 玩家在游戏游戏过程中随时可以通过选择不同的菜单命令来进行相应的操作,菜单的制作是通过MFC框架中多文档程序的菜单栏来添加的,菜单包含一下几个部分:(1)游戏菜单中的新游戏和退出命令。(2)帮助菜单里面的关于连连看命令。 (4)界面显示模块 游戏场景中界面的显示包括以下部分:游戏的关卡数、目前的分数、游戏主场景。这些显示信息会随着游戏的进行而动态改变。整个连连看游戏的系统是在VC++6.0开发环境中进行开发的,开发过程中大量的使用了微软提供的API接口方法,
7、减少了程序代码的编写量、提高了编程效率。3.系统详细设计3.1各个功能实现菜单系统游戏帮助退出新游戏图3-1 菜单系统3.2连连看消去算法实现 在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且连线成功。 分3种情况:(从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。这样就会有三条路经。若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了) 1.相邻 2. 若不相邻的先在第一个按钮的同行找一个空按钮。1).找到后看第二个按钮横向到这个空按钮所在的列是
8、否有按钮。2).没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮。3).没有的话,再
此文档下载收益归作者所有