基于MFC的俄罗斯方块课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++程序设计课程设计报告
俄罗斯方块
专业
学生姓名
班级
学号
指导教师
完成日期
目录
一、课程设计目的及要求 (1)
1.1 课程设计的目的 (1)
1.2 课程设计的要求 (1)
二、课程总体设计 (2)
2.1 需求分析 (2)
2.2 界面设计 (3)
2.3 系统功能 (3)
2.4 系统流程 (4)
2.5 功能模块 (5)
三、详细设计 (6)
3.1 界面框架 (6)
3.2 定时机制 (6)
3.3 定时处理 (8)
3.4 中断操作 (9)
3.5 旋转操作 (11)
四、调试与测试 (14)
4.1 未解决问题 (14)
4.2 调试过程 (14)
五、小结 (16)
六、参考文献 (17)
七、源程序清单 (18)
7.1 Game.h (18)
7.2 Tool.h (19)
7.3 BoxDlg.h (19)
7.4 Game.cpp (20)
7.5 BoxDlg.cpp (29)
一、课程设计目的及要求
1.1课程设计的目的
俄罗斯方块是由阿列谢.帕基特诺发明的,Tetris游戏在一个m*n 的矩形形框内进行的,矩形框的顶部会随机的出现一个有四个小方块组成的砖块,每过一段时间,就会下落一格,知道他碰到底部,然后再过一个时间下落另一个砖块,依次进行,砖块是随机出现的。当发现底部砖块是满的话,则消去它从而得到相应设置的分数,当砖块到达顶部的时候,游戏结束。选择俄罗斯方块进行C++面向对象程序设计课程设计主要是在学习C++这门面向对象语言的基础上,在完成C++面向对象程序设计各部分实验的基础上,通过学习MFC,掌握一种可视化编程的方法,并通过实践加深对可视化编程与C++面向对象程序设计语言特点的认识与理解。同时,可以提高运用C++编程语言解决实际问题的能力;锻炼实际的编程能力、创新能力及团队组织、协作开发软件的能力;还能提高调查研究、查阅技术文献、资料以及编写软件设计文档的能力。
1.2课程设计的要求
要求用VC++设计与实现俄罗斯方块游戏。要求系统包括以下内容:
(1)系统的需求分析
(2)系统总框图及每个模块的设计分析
(3) MFC应用程序架构
(4)框架的扩展
(5)算法的设计与实现
(6)游戏的内部实现
(7)游戏区域绘图的实现
(8)系统存在的问题及错误处理
(9)列出所有定义的函数及说明
(10)程序源代码。
二、课程总体设计
2.1需求分析
最原始的俄罗斯方块由七个不同形状的碎块组成,而每个碎块又是由四个大小相同的方块构成,随机给出不同的形状(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型)。在落地之前,玩家需要通过旋转方块使方块以最合适的形态下落,用它们拼成没有空隙的行列,如此便完成消行,使得游戏有更大的空间可以继续下去。若在游戏中各形状堆积的高度超过了给定区域,为输者,游戏结束。
游戏界面具有良好的视觉效果,将方块与背景颜色清晰的区分开来。高度与宽度适中,整体界面要具有一定的美感。
(1)游戏需求
随着给出不同形状的(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型)下落填充给定的区域,若填满便消掉,若在游戏中填满了给定区域,为输者,弹出相应提示。
(2)游戏界面需求
良好的用户界面,有关信息显示(如操作方法、等级等)。让方块在一定的区域内运动和变形,该区域用一种颜色表示,即用一种颜色作为背景,本游戏的颜色作为黑色。还需用另外一种颜色把黑色围起来,宽度适中,要实现美感。而不同的方块用不同的着色表示,使游戏界面更加清晰、有条理。消层时采用一定的时间延迟,增加视觉消行的感官效果。
(3)游戏方块需求
良好的方块形状设计,绘制七种常见的基本图形(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型),各个方块要能实现它的变形,可设为顺时针或者逆时针变形,一般为逆时针。为体现游戏的趣味性和扩展性,本游戏象征性的增加了点形方块,其他更多形状的方块可用类似的方法增加。
(4)游戏控制需求
游戏控分为多各方面,包括画面控制,控制命令的获取,控制命令的分配、控制命令的处理,方块的绘制,方块的移动,方块的旋转,方块下落和削层以及计分等。对各个命令的合理处理和综合控制十分重要,一旦出错可能导致整个程序去崩溃,因此需要小心设计。
2.2界面设计
在本系统中,简洁大方的界面设计能够有效提高用户体验。通过左右布局区分主游戏窗口与其他功能,右侧是开始/重新开始按钮、暂停按钮、积分/等级显示、下一个方块预览功能。游戏主体以灰为主色调,搭配窗口阴影设计,极大提高用户的游戏热情。
2.3系统功能
俄罗斯方块虽是一款大家都熟知的小游戏,但仍需要对功能模块进行细致划分。遵循软件工程“自顶向下,由粗到细”的原则,保证系统的完备与高可玩性。俄罗斯方块游戏具有以下功能:
(1)方块预览功能
当游戏运行后,并在顶部出现一个游戏方块时,必须在预览界面中出现下一个方块,这样便于玩家提前准备进行控制处理。
(2)方块控制功能
游戏玩家可以对出现的方块进行移动处理,分别实现左移、右移、快速下移、自由下落和行满自动消除等功能的效果。
(3)更新显示功能
当游戏进行方块移动处理时,要清除先前的游戏方块,用新坐标重绘游戏方
块。
(4)分数更新功能
能够实时显示玩家所得的分数与等级。每当玩家消除一行方块时计得100分,满1000分升一级。
(5)开始暂停功能
玩家可以通过按钮暂停游戏,再次点击时继续游戏。再次点击开始按钮时重新开始新的游戏。
系统功能
2.4系统流程
俄罗斯方块游戏的执行过程是在当前方块为落到底部之前,可以对方块进行旋转、左右移动以及快速下落操作。方块堆积满一行则消去,如果接触到底部方块堆积碰触到游戏窗口顶端,则视为死亡(游戏结束),未死亡则生成新的方块。执行流程如下图: