1、 数据结构课程设计报告数据结构课程设计报告 坦克大战游戏设计(坦克大战游戏设计(javajava 版)版) 组长: 组员: 指导老师: 所在学院: 电子与信息工程学院 班级: 软件工程 1001 班 1 目录目录 目录 1 1.需求分析 . 2 1.1 选题的意义及背景 2 1.2 本组课程设计的目标. 2 1.3 人员组成 3 2.设计方案 . 3 2.1 原始数据 3 2.2 输出数据 3 2.3 对数据的处理 3 2.4 程序流程图 . 4 2.5 封装的数据元素. 5 2.6 游戏的主要组成. 5 3.详细设计 . 5 3.1 构建游戏主类 5 3.2 构建坦克类Tank . 6 3.
2、3 添加炮弹 Missile 类 9 3.4 实现坦克的互相攻击. 10 3.5 创建 Explode 类. 15 3.6 添加障碍物. 16 3.7 添加血块类. 18 4 设计结果与分析 19 5 设计体会 . 22 2 坦克大战游戏的设计与实现 摘摘 要要:通过此次课程设计,深刻认识了单链表和顺序表的逻 辑结构和存储结构,熟练掌握了线性表的存储方式和一些基本 操作,如单链表和线性表的建立、求表长操作、取元素操作、 按值查找、插入和删除操作等。通过综合运用课程知识来设计 一个初具规模的游戏坦克大战。借此熟练了数据结构以及复 杂条件语句在游戏中的作用、随机函数在中型游戏中的应用、 游戏中状态
3、的概念和切换方法、游戏中速度的实现方法、覆盖 和碰撞问题的实现方法、使用 API 函数和 Buffer 实现复杂的 游戏图像显示以及声音和输入的处理。该游戏设计已经实现以 下功能:坦克能力说明、地图说明、奖励物品说明、游戏操作 说明、游戏技术组成、“坦克大战”游戏的创意、控件参数和 窗体属性的设置、游戏代码设计等说明。 关键词关键词:数据结构 java 游戏设计 函数和变量 1.需求分析需求分析 1.1 选题的意义及背景 运用数据结构知识,开发一个基于 J2SE 的游戏-坦克大战 1.2 本组课程设计的目标 培养自己综合利用数据结构进行程序设计的能力,主要是培养 自己的综合编程能力。 (1)
4、基本实现游戏图形界面,让玩家能看到游戏给出的反馈, 让玩家能感受到游戏的乐趣 (2) 玩家能操纵特定的游戏元素 (3) 不同队伍的坦克须显示不同的外观,以分辨敌我 (4) 坦克能够开火攻击敌方,但不能攻击队友 3 (5) 需要有不可被子弹穿透的墙,且墙有可摧毁和不可摧毁 两种 (6) 能够模拟爆炸,实现较美观的爆炸效果 (7) 坦克有生命值,并非被击中一次就会爆炸 (8) 游戏中随机出现血块,可以将主战坦克的血量加满 1.3 人员组成 组长: 组内成员: 2.设计方案设计方案 2.1 原始数据 (1)各种坦克的图片,各种墙的图片,基地图片,爆炸的图 片,草地图片,河道的图片,药剂的图片。 (2
5、)通过键盘操作,进行游戏。 2.2 输出数据 玩家需要从游戏输出数据中获得游戏信息,如坦克往上行驶, 坦克发射了子弹,坦克爆炸等,这些均需要通过游戏数据的输出来 告知玩家 2.3 对数据的处理 本次课程设计主要运用了数据结构中的数组和链表以及向量的 存储, 4 2.4 程序流程图 TankClient 类 否 进入结束界面 坦克死亡(消 结束 我方坦克可以由键盘控制移动和射击 敌方坦克由程序控制 开始 发射子弹 初始化坦克 子弹抵消 吃药品 判断是同方还是反 子弹消失,无 子弹消失血条下降 恢复满血 是否是同方坦 基地是否存在 碰撞检测 血条是否为 是否为金属墙 墙,子弹消失 墙 是 子 弹
6、坦克 是 是 是 否 否 子弹消失 5 2.5 封装的数据元素 窗口:主窗口 TankClient 游戏元素:子弹 Missile,坦克 tank,墙壁 brickWall,爆炸 类 explode, 敌人坦克 enemyTank,血量 Blood, 方向 Direction,背景音乐 sound. 2.6 游戏的主要组成 (1)构建游戏主类 (2)构建坦克类 Tank (3)添加炮弹 Missile 类 (4)实现坦克的互相攻击 (5)创建 Explode 类 (6)添加障碍物 (7)添加血块类 3.详细设计详细设计 3.1 构建游戏主类 在主类中构建一个主 Frame 框架,主要代码如下: thisthis.setLocation(200,100); thisthis.setSize(Game_wide,Game_height); this.setTitlethis.setTitle(“坦克大战“); 6 thisthis.addWindowListene