坦克大战迭代式需求分析_坦克大战迭代
坦克大战迭代式需求分析由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“坦克大战迭代”。
坦克大战
动手写一个练习项目:
一.系统分析:
需求分析:
启动游戏后:
1.展现出一个800*600的游戏界面,游戏界面不可调整大小,游戏界面点击右上角的红叉后关闭。
2.信息统计功能,在游戏界面左上角,当前屏幕子弹数,当前敌军坦克数。
3.我方坦克,颜色为红色,形状为原型,具有一个炮筒,和坦克的移动方向保持一致。
根据键盘的方向键,坦克的移动方向分为左、左上、上、右上、右、右下、下、左下。
当按住Ctrl键的时候,能够发送炮弹,多次按键,多次发送。
坦克有血量,满血为100,每次被击中,都会掉血10,直到0后,坦克死亡,游戏结束。
4.敌军坦克
形状:原型
颜色:蓝色
移动:随机移动
血量:当被一发炮弹击中的时候,立即死亡消失。
5.碰撞
当子弹碰撞坦克时,子弹消失。
当敌军坦克碰撞到我方坦克时,敌军坦克消失。
当子弹碰撞到墙壁时,子弹消失,不可穿透墙壁。
当坦克碰撞到坦克时,不可穿越。
当坦克碰撞到四周的游戏界面时,不可走出游戏界面。
二.系统设计
1.目录规范:
src/com/neusoft 下存放实体类。
涉及的类有:
TankClient:游戏的主类,其中包含了坦克,子弹,墙壁 Tank:坦克类 Miile:炮弹类
2.命名规范:
类名:首字母大写,驼峰标识。表示动作,要采用动词。方法名:首字母小写,驼峰标识。静态变量:全部大写
以上,命名简单含义明确,要做到见名知意。
3.工具及其环境
采用MyEclipse6.5进行开发,JDK1.6,windows2003操作系统。
三.开发计划
1.采用迭代式开发
v1.完成游戏界面开发,添加响应事件,能够关闭窗口。完成 完成 v2.我方坦克开发,展现、移动。完成v3.炮弹开发,一枚炮弹从我方坦克发出,向屏幕下方飞去。完成 v4.按键发送炮弹,当按住ctrl键的时候,炮弹才会发出去。完成 v5.炮筒开发,随着坦克的移动方向不同,炮筒的方向不同。完成v6.基数统计,在主屏幕的左上角统计当前游戏屏幕内的炮弹数。完成敌军坦克开发,敌军坦克随机移动,能够发送炮弹。添加十辆坦克到游戏界面。v7.碰撞开发,子弹碰到敌军坦克时,坦克爆炸,消失,子弹消失。
v8.墙壁开发,子弹遇到墙壁,消失,不可穿透,坦克遇到墙壁停止,调转方向。v9.游戏细节限制,坦克之间不可穿越。我方坦克血条。游戏结束时候提示。
版本:
MyProject_001_TankWar版本:完成v1、v2、v3、v4、v5功能。MyProject_002_TankWar版本: 1.修改子弹画图方法,由原来的Tank类中移动到TankClient类中,降低耦合度。
2.解决“java.util.ConcurrentModificationException”bug,使用Iterator迭代器对子弹的容器进行迭代,并调用Iterator自身的remove方法,取代容器自身的方法。3.满足v6、v7 MyProject_003_TankWar版本:
添加十辆坦克到游戏界面。敌军坦克随机移动,能够发送炮弹。解决敌军炮弹自残的问题。解决边界问题,坦克无法走出游戏边界。MyProject_004_TankWar版本:
1.使我方坦克可以被攻击,被攻击后掉血,每次掉 十分之一,直到死亡。2.增加血条,初始状态满血,每被攻击一次,就会掉十分之一的血。MyProject_004_TankWar版本:
计划完成,一键重新开始游戏。游戏结束提示。坦克大招,随机血包。
项目笔记:
虽然工作了几年,没有仔细学过JAVASE,所以总是感觉自己基础薄弱,其中的原因有自身的因素,也有外界因素,在大公司没办法,可能一个方向就够你干很多年,机会少。这是我第一个认认真真自己写的项目。
得到的收获:
1.面向对象思想,分析问题域,定义对象、方法。
2.开发的阶段性,之前我的做法一般都是瀑布式,说实在的却是如书上所说郁闷,干的满头大汗,都三而竭了,还没看到成绩,难免垂头丧气,影响士气。感觉到了原型法的好处,写项目分版本,快速建立原型,在此基础上逐渐丰富,很好的开发方式,值得使用。3.了解到了持有对方引用,这种模式,很好,降低了耦合,增强了内聚。
心中迷惑:
1.低耦合、高内聚,这个概念还是模糊,不知道合适的力度,类与类之间,耦合度多低算低呢?除了持有对方引用,还有其他的办法降低耦合度么?
2.总是感觉面向对象过程中,对象的确定和方法的确定很灵活、可以说不同的人有不同的看法,那么什么样的设计才是完美,最优的方案呢?