一、 课程题目 实现一个java版本的坦克大战游戏 【功能提示】 1. 游戏要有图形用户界面,界面能够反映游戏所有的细节。 2. 界面中要有坦克,墙,树林,河流。 3. 界面中要有一个“家”,“家”被攻击中则输了游戏。 4. 坦克分两种,敌方和我方。 5. 墙也分为两种,可以穿透的普通墙,不可以穿透的铁墙。 6. 树和河流均只有一种,树林坦克可以通过。 7. 坦克可以发射子弹,敌我方的子弹属性一样。 8. 我方子弹可以杀死敌方坦克,敌方子弹也可以杀死我方坦克,但需要多枪子弹才可以杀死。 9. 敌方之间不可以杀死对方。 10. 子弹击中坦克要有爆炸,但击中墙不能爆炸。 11. 我方可以吃血包增加生命。 12. 游戏可以暂停,重新开始,游戏帮助等功能。具体如下图:
* M7 \/ y" ~6 R1 }2 F5 c" ~
一、 题目分析与设计 n 需求分析 1. 设计一个图形用户界面,将所有游戏的元素都能在此用于界面上表现出来,界面能够接受用户的操作,具有人机交互功能。用户可以选择重新开始游戏,退出游戏,暂停游戏和查找游戏帮助。 2. 界面中包含坦克,树,河流,阻挡墙和游戏用户所要保护的“家”。 3. 坦克:坦克分为两种,敌方坦克和用户控制的坦克。用户方和敌方坦克均可以发射子弹,可以改变路径的行走,且在行走过程中遇到墙等阻碍物和游戏边界时要改变方向,而不能一直顶着障碍物不放。坦克之间不能穿越,碰撞到后自动调换方向。 4. 树:界面中要包括树林,作为遮掩物体和修饰物体,以便增加游戏的元素,使得游戏更加贴切人性化。树的数目不限,以游戏整体界面清晰美观来决定数目。 5. 河流:界面中要包括河流,河流作用与树林相同,同样河流的数目不限,以游戏界面整体美观度来决定数目。 6. 墙:墙体分为两种,普通的墙和铁墙,普通的墙在受到子弹袭击时会损坏,而铁墙可以阻碍子弹的穿越。两方的坦克均不能穿越两种墙体,但都可以摧毁普通墙体。普通墙体的数目配合其他元素合理安排,铁墙则不宜过多,不然游戏难度太低甚至因为坦克不能穿越铁墙而使得游戏无法进行下去。 7. “家”:用户方除了有一辆自己的坦克外还有一个要保护的家,家由普通墙体包围,家受到子弹攻击后游戏立即结束,用户方则输了本局游戏。 8. 子弹:子弹可以由敌方和用户方发射,且发射出去的子弹可以直线移动,直到碰到障碍物就消失,子弹可以穿越树林和河流。敌方坦克受到一颗子弹攻击会爆炸从而导致死亡,死亡后坦克消失。用户方受到子弹攻击后会减少寿命,且受到四次攻击则死亡,此时如还有敌方坦克存在,则用户方输掉本次游戏。 9. 爆炸:当子弹射击到坦克身上时,要产生爆炸效果。 10. 方向:坦克和子弹都有方向,可以选择上下左右四个方向,且子弹的方向从属于坦克的方向。
. e4 C1 ]% C% @$ b
' W% b4 h6 [- D& U
3 E6 D! e9 ^5 d: ?0 Z% @: x! c# v* j' ?6 r) g' ~0 C( y/ t! a. p
|