第三章 算法概要设计
3.1 软件结构
1.坦克大战游戏概念详见:2.3缩写及缩略语。
2.本坦克大战游戏按类(详见2.3)可以分为六大模块:
(1)坦克大战管理类(Tankclient)。
(2)坦克类(Tank)
(3)炮弹类(Shell)
(4)血条类(Blood)
(5)爆炸类(Explosion)
(6)墙体类(Wall)
3.处理流程及模块的层次结构和调用关系简图如图1所示:
3.2 数据结构
3.2.1 逻辑结构设计
这里将给出本系统内所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次的或表格的相互关系。
列名 | 数据类型 | 可否为空 |
|
Speech | int | Not NULL | 坦克速度 |
Level | int | NULL | 坦克等级 |
Score | int | NULL | 坦克分数 |
X,Y | int | NULL | 坦克坐标 |
oldx.oldy | int | NULL | 旧坐标 |
life | int | NULL | 坦克生命 |
Width,height | int | NULL | 坦克宽高 |
live | boolean | Not NULL | 是否存活 |
good | booelan | Not NULL | 敌我坦克区分 |
Direction | enum | Not NULL | 坦克方向 |
r | Random | Not NULL | 敌方坦克随机步数 |
Tc | TankClient | NULL | 引入坦克管理类 |
坦克类信息表格
列名 | 数据类型 | 可否为空 |
|
ScreenWidth | int | Not NULL | 游戏界面宽 |
ScreenHeight | Int | Not NULL | 游戏界面高 |
num | int | NULL | 无尽模式使用次数 |
challenge | boolean | Not NULL | 求败模式开关 |
myTank | Tank | NULL | 我方坦克 |
tanks | List<Tank> | NULL | 坦克集合 |
shells | List<Shell> | NULL | 子弹集合 |
walls | List<Wall> | NULL | 墙体集合 |
blood | Blood | NULL | 引入胶囊 |
坦克管理类信息
列名 | 数据类型 | 可否为空 |
|
Speech | int | Not NULL | 移动速度 |
numbers | int | Not NULL | 胶囊类型 |
live | boolean | Not NULL | 是否存活 |
tc | TankClient | NULL | 引入坦克管理类 |
Direction | enum | Not NULL | 移动方向 |
胶囊信息表格
列名 | 数据类型 | 可否为空 |
|
x,y | int | Not NULL | 爆炸坐标 |
tc | TankClient | NULL | 引入坦克管理类 |
step | Int | Not NULL | 爆炸步数 |
爆炸类信息
列名 | 数据类型 | 可否为空 |
|
Speech | int | Not NULL | 子弹速度 |
Width,Height | int | Not NULL | 子弹宽高 |
X,Y | Int | Not NULL | 子弹坐标 |
live | boolean | Not NULL | 是否存活 |
good | boolean | Not NULL | 敌我子弹区分 |
子弹信息表格
列名 | 数据类型 | 可否为空 |
|
X | int | NOT NULL | 横坐标 |
Y | int | NOT NULL | 纵坐标 |
width | int | NOT NULL | 宽度 |
height | Int | Not NULL | 长度 |
number | Int | NOT NULL | 类型 |
tc | TankClient | NOT NULL | 引入坦克管理类 |