欢迎来到天天文库
浏览记录
ID:9370292
大小:157.00 KB
页数:32页
时间:2018-04-29
《俄罗斯方块游戏的敏捷设计与开发》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、俄罗斯方块游戏的敏捷设计与开发黄复贤摘要:本文提出一种利用数组及敏捷开发思想开发俄罗斯方块游戏的过程,以数组为界面显示的数据结构,设计界面类。利用STRATEGY模式设计方块类,先设计抽象类,通过应用测试优先原则,设计简单方块让抽象类的测试通过。在逐步的迭代与重构中来响应不断变化的需求,来实现所有类。最后通过界面的优化来完成系统的开发。关键词:游戏;敏捷开发;测试优先0.简述俄罗斯方块游戏可以说是随计算机的发展而发展,并不断推陈出新,演变出各种类似游戏,深受广大玩家喜爱。这个游戏有的简单,有的复杂,但其根本原理是一样的,都是对运动的方块进行组合,来训练玩家的反应能力。
2、谈到游戏软件,大多数人都认为其神妙莫测,高不可及。而一般游戏软件也确实具有很高的技术难度,随着开发工具及软件开发方法学的不断发展,动手开发游戏也不是十分困难的。俄罗斯方块游戏是一种古老而又有趣的游戏,游戏软件不计其数,网上就有好多关于实现的复杂算法和设计,其难度让一般初学者望而却步。本文利用数组及敏捷软件开发思想提出一种在DELPHI下实现的简易方法,对初学者可仿此开发类似游戏,并了解敏捷软件开发的设计与开发过程。1.总体设计思想敏捷开发强调使设计尽可能的简单、具有表现力。仅仅关注于计划在本次迭代中要完成的素材,不考虑未来的用户素材,在一次次的迭代中,不断变迁系统设计
3、,使之对正在实现的用户素材而言始终保持最优状态。对于俄罗斯方块游戏,究其原理,不同形状的方块是由最一个基本的方块组合而成,在界面的显示中,可以用数组的行、列坐标来表示位置,用0、1表示有无来代表不同的形状。方块的移动可以通过修改数组的值来实现。根据单一职责原则,拟设置两个类,一个是显示类,另一个是方块类,用Tform1充当接口类。根据优先级先实现基本功能点。显示类设置数组、行数、列数属性及初始化、设置数组值。实现了基本功能后,在表单上设置计时器、按钮、文本框实现类之间的交互,并优化界面设计,并重构系统,提高代码的清晰度,并接受新的需求变化,增强、扩展系统的功能。2.测
4、试优先原则编写测试是一种验证行为,更是一种设计行为。优先编写测试,迫使自己把程序设计为可测试的、易测试的,关注程序的同时,也关注它的接口,降低软件中的耦合。测试还可以做为一种无价的文档,并且这份文档是可编译的、可运行的,总是保持最新的版本。2.1界面技术点测试根据总体设计思想,游戏的画面就是把图标动态的显示在表单上,可以测试一下细节性的参数。在表单上放两个IMAGE控件,其中IMAGE1为画布,IMAGE2为图标。通过试验,可以得出显示图标的精确语句形式如下:fori:=1to15doforj:=1to10doimage1.Canvas.Draw(1+(j-1)*16
5、,1+(i-1)*16,image2.Picture.Icon);其中16可以根据图标大小调整,该语句系列可实现显示15行10列指定图标图案,为以后显示数组存储的图案做了准备,如果说这叫关键技术试验也可以,为下一步的开发做好技术上的准备。2.2可视化测试与自动测试在开发时,先编写测试用例,在DELPHI下,可以用Dunit工具管理多个测试用例。在测用例中,用check()对方法或过程执行后的结果进行断言。以下是写方块类之前对方块类的getshape及reverse方法测试的两个用例:procedurettestcasefirst.testfirst;beginp:=b
6、lock1.create;p.init;check(p.getshape='00010203','firsttestfail');end;procedurettestcasefirst.testsecond;beginp:=block1.create;p.init;p.reverse;check(p.getshape='00102030','secondtestfail');end;编写游戏时,界面也应同步设计,这样,测试就可以从界面上直接观测结果,直观易行,缺点是需手工执行,与自动测试相结合,效果就比较理想了本文给出了一个基于MIDP1.0的俄罗斯方块游戏的设计方案
7、,并给出全部实现源代码。该游戏的最大特色是屏幕自适应,无论各种手机,PDA的屏幕大小如何,该游戏总是能获得最佳的显示效果。游戏在J2mewirelesstoolkit2.1的4种模拟器上测试通过。操作流程本游戏的操作流程非常简单,用户启动MIDlet启动后,即进入游戏主画面,屏幕开始显示为欢迎画面。用户按下[开始]按钮后,就可以开始玩游戏了,当用户想暂停时,再次按一下[开始]按钮,游戏就暂停了,在暂停的情况下再按[开始]按钮,游戏继续运行。任何时候按[退出]按钮,游戏MIDlet都会终止.算法MIDP的游戏设计,本质上就是用一个线程或者定时器产生重绘
此文档下载收益归作者所有