《C--课程设计-俄罗斯方块游戏.doc》由会员分享,可在线阅读,更多相关《C--课程设计-俄罗斯方块游戏.doc(29页珍藏版)》请在金锄头文库上搜索。
1、课 程 设 计 报 告 课程名称:面向对象程序设计C+ 设计题目: 俄罗斯方块游戏 专 业:计算机科学与技术 姓 名: 学 号: 指导教师:李 晓 虹 2015 年 1 月 10 日目 录.21需求分析.2 1.1需求分析.2 1.1.1游戏需求.2 1.1.2游戏界面需求.2 1.1.3游戏形状(方块)需求.21.2 课程设计目的.31.3 课程设计要求.32系统总体设计.32.1 程序流程图.32.2 定义方块的数据结构.42.3 游戏设计分析.52.4 开发环境.73系统详细设计 .73.1系统主界面的框架 .73.2 正常流程的设计.8 3.2.1定时机制.8 3.2.2定时处理.83
2、.3底部到达的判断与销行的实现.93.4中断操作流程的实现.93.5变形的实现.103.6游戏区域绘制的实现.104测 试.104.1 测试方案.124.2 测试结果.145 结果分析.206总 结.21参考文献.21附 录.21附录1源程序清单.211 需求分析1.1需求分析1.1.1游戏需求随机给出不同的形状(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型)下落填充给定的区域,若填满一条便消掉,记分,当达到一定的分数时,过关,设置六关,每关方块下落的速度不同,若在游戏中各形状填满了给定区域,为输者。1.1.2游戏界面需求:良好的用户界面,有关数显示和分数显示。让方块在一定的区域内运
3、动和变形,该区域用一种颜色表明,既用一种颜色作为背景,最好设为黑色。还需用另一种颜色把黑色围起来,宽度适中,要实现美感。1.1.3游戏形状(方块)需求:良好的方块形状设计,绘制七种常见的基本图形(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型),各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。1.2 课程设计目的a)巩固并加深学生对C+语言程序设计知识的理解;b)培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;c)进一步掌握和应用VC+ 6.0集成开发环境;d)提高运用C+语言解决实际问题的能力;e)初步掌握开发小型实用软件的基本方法,
4、能独立设计、实现具有实际功能的小系统;f)掌握书写程序设计开发文档的能力(书写课程设计实验报告)1.3 课程设计要求课程名称:俄罗斯方块用设计与实现俄罗斯方块游戏。要求包括系统的需求分析;系统总框图及每个模块的设计分析;MFC应用程序架构;框架的扩展;算法的设计与实现;游戏的内部实现;游戏区域绘图的实现;系统存在的问题及错误处理;列出所有定义的函数及说明;附上程序源代码。2 系统总体设计 2.1 程序流程图图2.1程序流程图图2.1.2程序调用图2.2 定义方块的数据结构对于方块在某一瞬间的位置标识,我们采用一个42的小数组标识出来,即用4个存储单位空间存储当前下坠物的每一子块的位置,也就是说
5、,用4个存储单位空间存储当前下坠物的每一子块的位置来对整个下坠物件的位置进行标识,而每个存储空间的大小就是一个典的坐标值(x,y),而每个方块按照从左到右的方向 进行编号,并且在编号过程中对于同一列的图2.2方块编号ActiveStatus00和ActiveStatus01则是第0号方块的横坐标x和纵坐标y;ActiveStatus20和ActiveStatus21则是第2号方块的横坐标x和纵坐标y2.3 游戏设计分析有前面的功能描述可知,我先虚拟出俄罗斯方块游戏的类对象,并抽象出核心的数据属性和操作方法等,然后再作细化,最后将整个虚拟类的外壳脱掉,再移植到视图类中去,其实现如下:CRectGameView:publicCView