软件工程课设(共34页).docx
《软件工程课设(共34页).docx》由会员分享,可在线阅读,更多相关《软件工程课设(共34页).docx(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上滨江学院软件工程课程设计题 目 俄罗斯方块游戏实现专业班级: 14软件1 学生姓名: 陆嘉纯学 号: 指导教师: 李振宏学 期: 15-16第2学期专心-专注-专业目录1. 课程设计概述62. 项目的可行性研究与需求分析62.1 项目可行性研究62.1.1 技术可行性62.1.2 经济可行性62.1.3 操作可行性73、项目设计的基本原理和采用的主要方法与技术73.1 设计基本原理73.2主要方法和技术73.2.1 键盘监听73.2.2 重绘73.2.3 形态方块的数组设置73.2.4 定时器设置线程73.2.5 方块的变形与消行84. 总体设计84.1 总体设计方案
2、84.2 模块设计图84.2.1 MVC设计模型图84.3 模块说明84.3.1 模型层功能模块设计94.3.2 视图层功能模块设计94.3.3 控制层功能模块设计105. 详细设计105.1 模型层设计115.1.1 产生图形115.1.2 产生地图115.2 视图层设计125.2.1 方块的显示135.2.2 分数的显示135.3 控制层设计145.3.1 方块的移动与变形156. 编码实现176.1 游戏界面演示186.2 消行并得分演示186.3 游戏结束演示197. 测试用例设计、测试与运行记录197.1游戏界面菜单选项的功能测试207.1.1“游戏”菜单测试207.2按键事件的功能
3、测试207.2.1方块移动测试207.2.2方块反转测试207.3方块堆砌与消行测试207.3.1底层碰撞217.3.2满行消除217.4测试结果分析218. 课程设计完成结果分析与个人小结21参考文献:21致谢22附录23俄罗斯方块游戏实现陆嘉纯南京信息工程大学滨江学院计算机系,江苏 南京 摘要:在现今电子信息高速发展的时代,电子游戏已经深入人们的日常生活,成为老少皆宜的娱乐方式。但是游戏设计结合了日新月异的技术,在一个产品中整合了复杂的设计、艺术、声音和软件,所以并不是人人皆知。直到今天,在中国从事游戏设计的人仍然很少,但是游戏行业的发展之快,远超如家电、汽车等传统行业,也正因为如此,游戏
4、人才的教育、培养远落后于产业的发展。俄罗斯方块是个老少皆宜的小游戏,它实现由四块正方形的色块组成,计算机随机产生不同七种类型的方块,根据计算机时钟控制它在一定的时间不停的产生,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作,然后程序根据这七种方块堆叠成各种不同的模型。关键词:俄罗斯方块;数据结构;JavaRealization Of The Game TetrisMatt JasonDepartmnet of Computer,Binjiang College,NUIST,Nanjing ,ChinaAbstract: In the current era with rapid dev
5、elopment of electronic information, electronic games have been deeply Peoples Daily life, become the entertainment for young and old.But the game design combined with the ever-changing technology, integrates the complex in a product design, art, sound, and software, so not everyone knows.Until today
6、, people in China to engage in game design is still very few, but the game industry, the rapid development of far beyond traditional industries, such as household appliances, automobile, also because of this, the game of talent education and training is far behind the development of the industry.Tet
7、ris is a game for young and old, it is composed of four square of color piece, the computer randomly generate different seven types of square, according to the control it in a certain amount of time on the computer clock, users according to the four keyboard direction key control flip, left, right a
8、nd down operation, then the program according to the seven squares stack into a variety of different models.Key words:Tetris;Data Structure;Java1. 课程设计概述设计俄罗斯方块游戏程序,用户可以通过平移和转动自动落下的不同形状物体,填满一行来得分。开发智力和反应能力。(1)界面的左侧是游戏区域。新的图形会在顶部刷新,并且自动下落,可以通过方向左右键平移和方向上键顺时针旋转来控制图形落下的位置。(2)界面的右侧是选项和显示区,显示现在的得分,以及开始游戏
9、、暂停游戏、结束游戏按钮。2. 项目的可行性研究与需求分析2.1 项目可行性研究2.1.1 技术可行性该程序是由Java语言实现,Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。另一方面,Java技术也不断更新。1991年,Sun公司的JamesGosling。BillJoe等人,为电视、
10、控制烤面包机等家用电器的交互操作开发了一个Oak(一种橡树的名字)软件,他是Java的前身。当时,Oak并没有引起人们的注意,直到1994年,随着互联网飞速发展,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官ScottMcNealy的支持,得以研发和发展。为了促销和法律的原因,1995年Oak更名为Java。Java分为三个体系JavaSE(Java2PlatformStandardEdition,java平台标准版),JavaEE(Java2Platform,EnterpriseEdition,java平台企业版),JavaME(Java2PlatformMicroEd
11、ition,java平台微型版)。Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。Java语言是一个支持网络计算的面向对象程序设计语言。Java语言吸收了Smalltalk语言和C+语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。2.1.2 经济可行性本系统开发应用之后主要用于游戏的实现,有开发周期短和高效率等优点。基于Java语言开发,开源免
12、费,因此该项目的开发成本很低,从这一点上来说,该系统经济上可行。2.1.3 操作可行性由系统分系可以看出本程序的开发在技术上具有可行性。首先游戏对所要求的软、硬件的最低配置现在大多数的用户用机都能达到。现有的开发工具和技术完全能够实现。本程序对用户没有任何的特殊要求,实际操作基本上以键盘操作为主并辅以少量的鼠标操作,操作方式很方便。因此该项目具有良好的易用性。3、项目设计的基本原理和采用的主要方法与技术3.1 设计基本原理首先定义一个三维数组分别存放方块类型(包括7种:S、Z、L、J、I、O、T),用0和1代表当前方块是否显示。其次在窗体中添加地图,并设置边框的数值为2以作区分,对方块与地图进
13、行碰撞检测,触碰左右边界则设置不得越界,触碰底边则另其停止移动。通过按键监听事件获得对键盘事件的监听来控制方块的移动与变形。若最下面一行的方块数值均为1则进行置0并获得游戏加分。3.2主要方法和技术3.2.1 键盘监听通过KeyListener中的KeyAdapter来进行对键盘的行为操作的时间监听,以此改变方块的位置和形态。3.2.2 重绘重构paint方法已实现对人机界面的panel重绘,将帧数画布变成连续的动画,形成方块下落过程。3.2.3 形态方块的数组设置普通的一、二维数组难以实现多种方块的形态构成及变化,因此创建一个四维数组容器来放置多种形态方块。第一维代表方块类型(包括7种:S、
14、Z、L、J、I、O、T),第二维代表旋转次数,第三四维代表方块矩阵。3.2.4 定时器设置线程设置一个Timer来创建Thread,控制方块的下落速度。3.2.5 方块的变形与消行通过形态方块的数组设置来实现方块是否显示,变形是对显示方块的数值进行置0或1,而消行则是将数值置0进行消行。4. 总体设计4.1 总体设计方案本游戏设计按照MVC设计模式,将游戏的输入、处理、输出流程按照Model、View、Controller的方式进行分离,即将游戏划分成三个模块:模型层、视图层、控制层。4.2 模块设计图4.2.1 MVC设计模型图4.3 模块说明4.3.1 模型层功能模块设计4.3.2 视图层
15、功能模块设计4.3.3 控制层功能模块设计5. 详细设计5.1 模型层设计5.1.1 产生图形首先创建方块的数据结构,定义一个4*4的矩阵,共16个小格。用0和1来表示当前方格是否显示,由此可以绘制多种图形。5.1.2 产生地图与方块的数值不同,在窗体四周绘制一圈方块,并设置每个块的值为2,以作区分。5.2 视图层设计5.2.1 方块的显示根据nextBlock方法来产生随机数,获取一个随机图形,进行显示。然后根据paint方法来进行画面的绘制。5.2.2 分数的显示在游戏主界面的旁边加上分数字符串,以来显示玩家的得分。5.3 控制层设计5.3.1 方块的移动与变形通过控制按键来实现方块的移动
16、,继承KeyListener来对键盘事件进行监听。按下上键,实现turn方法,进行方块的state改变,则进行变形操作;按下下键,实现down方法,对方块的location的纵坐标递增,则进行加速下落;按左右键,对方块的location的横坐标进行加减操作,则进行图形的左右移动。6. 编码实现6.1 游戏界面演示6.2 消行并得分演示6.3 游戏结束演示7. 测试用例设计、测试与运行记录7.1游戏界面菜单选项的功能测试7.1.1“游戏”菜单测试(1)点击“游戏”-“新游戏”输出:游戏开始结果:正常(2)点击“游戏”-“暂停”输出:弹出游戏结束提示框结果:正常(3)点击“游戏”-“继续”输出:游
17、戏继续进行结果:正常7.2按键事件的功能测试7.2.1方块移动测试游戏过程中,点击“左、右、下”方向键输出:方块正常移动,不会移出边界结果:正常7.2.2方块反转测试游戏过程中,点击向上方向键输出:方块无边界和障碍物阻挡的情况下可反转结果:正常7.3方块堆砌与消行测试7.3.1底层碰撞输出:方块成功堆砌在底部结果:正常7.3.2满行消除输出:所有满行被消除,方块依次下移结果:正常7.4测试结果分析经过测试,本游戏实现了基本的功能,不过整体功能还不是很强大,作为开发的第一个版本,游戏在很多方面还需要进一步完善。8. 课程设计完成结果分析与个人小结此次课程设计,通过俄罗斯方块这个小程序的一系列制作
18、与分析,软件工程的程序制作流程以及OOP的概念已经深入我心。通过此次课程设计,我在软件工程这门课程方面获得了很大了提高,能够用深层次分析的方法去思考问题以及解决问题,通过需求分析、概要设计和详细设计来进一步的理解程序。参考文献:1 明日科技Java从入门到精通(第3版)M明日科技,译3版北京:清华大学出版社,2012:230-2492 布鲁斯埃克尔Java编程思想(第4版)M陈昊鹏,译4版北京:机械工业出版社,2007:148-167致谢这次课程设计,我深刻领会到基础的重要性,课程设计不仅仅能帮助我检验所学知识的学习成果,更多的是可以帮助我更加清楚的认识自我,磨练意志与耐性,这会为我日后的工作
19、和生活带来很大的帮助。通过一个学期的学习,这次的课程设计已接近尾声,由于经验的匮乏,难免有许多考虑不周全的地方,在这里衷心感谢李振宏老师的教学教导,以及一起学习的同学的支持与帮助。附录全部代码如下:import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEven
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 34
限制150内