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