Robocode关于坦克大战的课程设计报告

合集下载

坦克大战游戏概要设计

坦克大战游戏概要设计

目录第一章引言 ............................................................................................ - 3 -1.1编写目的.. (3)1.2项目背景 (3)1.3定义 (3)1.3.1 专门术语 (3)1.3.2 缩写 (3)1.4参考资料 (4)第二章总体设计 (5)2.1需求规定 (5)2.1.1 对功能的规定 (5)2.1.2 对性能的规定 (5)2.1.3 输入/输出要求 (5)2.1.4 数据管理能力要求 (5)2.1.5 故障处理要求 (5)2.2其它专门要求 (5)2.3运行环境 (6)2.4功能需求与程序模块的关系 (6)2.5技术架构 (7)第三章接口设计 (8)3.1外部接口 (8)3.1.1 用户界面 (8)3.1.2 软件接口 (8)3.1.3 硬件接口 (8)3.2内部接口 (8)3.3.1结构 (8)3.3.2处理过程 (8)第四章运行设计 (9)4.1运行模块的组合 (9)4.2运行控制 (9)4.3运行时间 (9)第五章出错处理设计 (10)5.1出错输出信息 (10)5.2出错处理对策 (10)第六章维护设计 (11)第一章引言1.1 编写目的本说明书目的在于明确说明坦克大战游戏各功能的实现方式,指导开发员进行编码,并解决实现该系统的程序模块设计问题。

包括如何把该系统划分成若干个功能模块、决定各个功能模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。

在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。

本说明书的预期读者为:从事游戏开发的工作人员,系统分析员,系统设计人员,开发工程师,测试经理以及测试设计人员。

1.2 项目背景现在人们工作的压力越来越大,休息的时候很少,为了让疲惫的心灵得以休息,开发了坦克大战的小游戏来让玩家轻松一会,该游戏操作十分简单,只要操作键盘上的方向键按住攻击键就可以玩该游戏,轻松享受玩游戏的喜悦,可操作性好,而且不会使玩家沉溺于该游戏,对玩家的学习和工作都起积极的作用。

Robocode坦克大战源码

Robocode坦克大战源码

山东师创实训文件:Robocode是一种编程的游戏,目标是开发一个机器人作战坦克来对抗其他坦克在Java或. net。

机器人战斗是运行在实时和屏幕。

Robocode的座右铭是:建立最好的,摧毁剩下的!除了作为一个编程比赛,Robocode是用来学习如何编写程序,主要是在Java语言中,但是其他语言,像c#和Scala越来越流行。

学校和大学正在使用Robocode作为教学如何编写程序,但也为研究人工智能(AI)。

Robocode 的概念很容易理解,和一个有趣的方法来学习如何编程。

Robocode也有自己的安装程序,内置的机器人编辑器和Java编译器,只有pre-requires Java虚拟机(JVM)存在的系统必须安装。

因此,一切机器人开发人员需要开始提供了主要Robocode 分布文件(robocode-xxx-setup.jar)。

Robocode还支持使用外部ide开发机器人用诸如。

Eclipse,IntelliJ IDEA,NetBeans,Visual Studio等等,它支持开发人员比机器人Robocode编辑。

Robocode的事实,运行在Java平台使得它可以运行在任何操作系统使用Java预先安装的,这意味着它将能够运行在Windows上,Linux,Mac操作系统,但是也UNIX和变异的UNIX。

注意,Java 5.0或更新版本,必须安装之前,在系统上Robocode能够运行。

看到的系统要求更多的信息。

要知道,许多用户Robocode的(又名Robocoders)找到Robocode很有趣,但也非常上瘾。

Robocode是免费的而且正在被开发一个业余项目,涉及的是没有钱。

Robocode的开发商正在开发Robocode上,因为他们认为它十分有趣,因为他们提高自己作为开发人员这种方式。

Robocode是一个开源项目,这意味着所有的来源是对所有人开放。

此外,Robocode的条款下提供英超(Eclipse公共许可证)。

Robocode坦克大战源码

Robocode坦克大战源码

山东师创实训文件:Robocode 是IBM 开发的Java 战斗机器人平台,游戏者可以在平台上设计一个Java 坦克。

每个坦克有个从战场上收集信息的感应器,并且它们还有一个执行动作的传动器。

其规则和原理类似于现实中的坦克战斗。

其融合了机器学习、物理、数学等知识,是研究人工智能的很好工具。

在Robocode 坦克程序中,很多爱好者喜欢设计一些策略与移动模式,让自己的坦克机器人能更好的赢得战斗。

但是由于Robocode 环境时刻在变化,手写的代码只能对已知的环境做一些预测,机器人不能根据环境的变化而自我学习和改善。

本文中,将用强化学习实现一个机器人。

使用强化学习能创建一个自适应的战斗机器人。

这个机器人能在战斗中根据环境取得最好的策略,并尽力使战斗行为最佳。

并在此过程中不断学习以完善自身不足。

强化学习强化学习(reinforcement learning)是人工智能中策略学习的一种,是一种重要的机器学习方法,又称再励学习、评价学习. 是从动物学习、参数扰动自适应控制等理论发展而来.强化学习一词来自于行为心理学,这一理论把行为学习看成是反复试验的过程,从而把动态环境状态映射成相应的动作。

它通过不断尝试错误,从环境中得到奖惩的方法来自主学习到不同状态下哪些动作具有最大的价值,从而发现或逼近能够得到最大奖励的策略。

它类似于传统经验中的“吃一堑长一智”。

原理与模型考虑建造一个可学习的机器人,该机器人(或agent)有一些传感器可以观察其环境的状态(state)并能做出一组动作(action)来适应这些状态。

比如:一个移动的机器人有摄像头等传感器来感知状态,并可以做"前进","后退"等动作。

学习的任务是获得一个控制策略(policy),以选择能达到的目的的行为。

强化学习基本原理也是基于上面的思想:如果Agent 的某个行为策略导致环境正的奖赏(强化信号),那么Agent 以后产生这个行为策略的趋势便会加强。

(汇编代码)微机原理课程设计之TANK坦克大战

(汇编代码)微机原理课程设计之TANK坦克大战
测试报告
测试游戏功能是否正常
检查游戏性能是否达标
调试游戏中的错误和问题
优化游戏性能和体验
游戏测试:成功运 行,无严重错误
调试过程:定位并 修复了若干问题
测试结果:性能稳 定,符合预期
结论:游戏测试和 调试工作顺利完成
游戏优化和改进
优化算法:采用更高效的算法,减 少计算量,提高游戏运行速度。
完 成 TA N K 坦 克 大 战 游 戏 的 程 序设计和实现
学会使用汇编语言进行编程
掌握游戏的基本规则和玩法
游戏规则和玩法
游戏目标:击败所有敌人,保护基地 角色设定:玩家扮演坦克,有生命值和弹药量限制 武器装备:多种武器可供选择,不同武器有不同的攻击力和射程 游戏地图:多个关卡,每个关卡有不同的地形和敌人配置
添加标题
游戏状态管理:游戏状态包括开始、进行中和结束三个状态。在开 始状态下,玩家可以开始游戏;在进行中状态下,玩家可以操作坦 克移动和射击;在结束状态下,游戏结束并给出评价。
添加标题
游戏角色行为:游戏角色包括玩家坦克和敌方坦克。玩家坦克的行 为包括移动和射击;敌方坦克的行为包括移动和攻击。
游戏界面布局:简洁明了,易于操作 角色设计:形象生动,符合游戏主题 场景设计:丰富多样,增加游戏趣味性 特效设计:绚丽多彩,提升游戏体验感
添加标题
添加标题
添加标题
添加标题
敌方角色:游戏中的敌方坦克种类多 样,包括轻型坦克、重型坦克、自行 火炮等,具有不同的攻击和防御能力, 对玩家构成威胁。
游戏辅助角色:游戏中的一些辅助角 色,如地图、弹药补给点等,为玩家 提供地图信息和弹药补给服务,帮助 玩家更好地进行游戏。
游戏程序设计和实 现
游戏整体架构:包 括游戏的主要功能 模块和各模块之间 的关系

坦克大战游戏策划书3篇

坦克大战游戏策划书3篇

坦克大战游戏策划书3篇篇一坦克大战游戏策划书一、游戏概述游戏名称:坦克大战游戏类型:休闲竞技类游戏目标:玩家控制坦克在战场上与其他玩家或电脑控制的坦克进行战斗,通过摧毁敌方坦克来获取胜利。

游戏玩法:玩家通过操作坦克的移动、射击等动作,与其他坦克进行对抗。

游戏中会有各种道具和障碍物,增加游戏的趣味性和挑战性。

二、游戏角色1. 玩家坦克:由玩家控制,具有不同的属性和技能。

2. 敌方坦克:包括电脑控制的普通坦克和具有特殊能力的 BOSS 坦克。

三、游戏场景1. 战场:分为多个不同的地图,每个地图都有独特的地形和障碍物。

2. 基地:玩家和敌方的起始位置,需要保护好自己的基地不被摧毁。

四、游戏规则1. 玩家通过操作坦克在战场上移动和射击。

2. 摧毁敌方坦克可以获得分数和道具。

3. 玩家的坦克被摧毁后,可以在一定时间后复活。

4. 游戏时间结束时,分数高的一方获胜。

五、游戏道具1. 强化道具:可以提升坦克的攻击力、防御力等属性。

2. 特殊武器道具:如导弹、激光等,具有强大的攻击效果。

3. 恢复道具:可以恢复坦克的生命值。

六、游戏界面1. 游戏主界面:包括开始游戏、选择地图、查看排行榜等功能。

2. 游戏战斗界面:显示战场地图、玩家和敌方坦克的位置、生命值、弹药数量等信息。

七、游戏音效1. 背景音乐:营造紧张激烈的战斗氛围。

2. 射击音效:增强射击的真实感。

3. 爆炸音效:让玩家更直观地感受到战斗的激烈程度。

八、游戏开发计划1. 需求分析:[具体时间]2. 设计阶段:[具体时间]3. 开发阶段:[具体时间]4. 测试阶段:[具体时间]5. 上线阶段:[具体时间]九、游戏推广计划1. 在各大游戏平台进行推广。

2. 利用社交媒体进行宣传。

3. 举办线上和线下的游戏比赛。

十、游戏盈利模式1. 内购道具。

2. 广告收入。

篇二坦克大战游戏策划书一、游戏概述游戏名称:坦克大战游戏类型:休闲对战类游戏平台:多平台(移动端、PC 端等)游戏背景:设定在一个充满战争硝烟的世界,玩家将操控坦克在各种战场上进行激烈战斗。

新世纪坦克大战课程设计报告

新世纪坦克大战课程设计报告

计算机学院计算机科学与技术专业《程序设计综合课程设计》报告(2010/2011学年第一学期)学生姓名:学生班级:学生学号:指导教师:2011年 1 月9 日新世纪坦克大战目录《程序设计基础》课程设计 (1)——《新世纪坦克大战》 (1)一.课程设计目的和要求 (1)二.课程设计任务内容 (1)三.详细设计说明 (1)(1)需求分析 (1)(2)算法设计 (2)(3)数据结构设计 (2)(5)功能函数设计 (4)(6)函数调用流程 (4)(7)编码和实现 (4)(8)调试和运行 (5)四.软件使用说明 (9)五.课程设计心得与体会 (9)附录1:参考文献 (10)附录2:程序清单 (11)《程序设计基础》课程设计——《新世纪坦克大战》一.课程设计目的和要求1.熟悉c++的各种编译技巧和注意事项。

2.能就实际问题提出问题并给予分析。

3.学会分析程序所具备的功能,并把各个功能分类处理。

4.提高使用c++处理实际问题的能力。

5.提高c++编程的实践能力。

二.课程设计任务内容在DOS界面上实现一个简单的《新世纪坦克大战》小游戏。

要求能够自主调整射程,随机给出爆炸效果,判断胜负,画面颜色丰富,基本实现动画效果。

三.详细设计说明(1)需求分析1.游戏规则、特色以及作者版权的介绍。

2.游戏主要背景的输出。

3.背景以及前景的颜色设置。

4.玩家坦克射程的判断。

5.敌对坦克的射程的随机给出以及判断。

6.爆炸效果画面的选取调用以及输出。

7.胜负的判断以及相关函数的调用以及输出。

8.实现游戏回合制的循环。

(2)算法设计将游戏画面底部作为一条数轴,划分为22个部分。

玩家输入射击仰角n,根据仰角n的不同,出现不同的爆炸效果(包括击中对方获胜)。

程序给出一个随机数m,作为敌对坦克的射击仰角,根据仰角m,出现不同的爆炸效果(包括击中玩家致使玩家失败)。

(3)数据结构设计坦克输出画面函数:void picture00(){cout<<" ### ***"<<'\n';cout<<" ####### *******"<<'\n';cout<<" ##### *****"<<'\n';cout<<"#######*******"<<'\n';cout<<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<'\n';}随机数生成函数:srand(time(0));m=rand()%20-1;(5)功能函数设计1.不同的效果画面,包括背景颜色的输出。

坦克大战实验报告总结

坦克大战实验报告总结

坦克大战实验报告总结坦克大战实验报告总结实验报告总结是对坦克大战实验进行全面回顾和总结的部分。

在这个实验中,我们设计了一个多人在线坦克对战游戏,并对其进行了测试和评估。

首先,我们通过分析游戏的玩法和功能需求,确定了实验的目标和要求。

我们的目标是创建一个具有协同和竞争性元素的多人在线游戏,通过实验测试其稳定性、可玩性和用户体验。

在实验中,我们使用了Unity引擎和C#编程语言来开发游戏。

我们设计了一个简单的地图,玩家可以在其中驾驶坦克进行对战。

我们为坦克添加了各种功能,例如移动、射击和受伤机制,以增加游戏的策略性和挑战性。

为了评估游戏的性能和用户体验,我们进行了一系列测试。

我们首先进行了功能测试,确保游戏的各项功能正常运行。

然后,我们进行了性能测试,测试游戏在不同网络环境下的延迟和帧率。

最后,我们进行了用户体验测试,收集玩家对游戏的反馈和建议。

通过实验,我们得出了以下结论:1. 游戏的核心功能运行正常,并且具有一定的可玩性和挑战性。

2. 在低延迟的网络环境下,游戏的表现良好,但在高延迟的网络环境下会出现一些延迟和卡顿的问题。

3. 玩家对游戏的操作和画面质量表示满意,但希望增加更多的地图和游戏模式来增加游戏的可玩性。

基于这些结论,我们对游戏进行了改进和优化。

我们减少了游戏的网络通信量,以降低延迟和提高游戏的流畅度。

我们还增加了更多的地图和游戏模式,以增加游戏的可玩性。

综上所述,通过本次实验,我们成功地设计并开发了一个多人在线坦克对战游戏,并对其进行了评估和改进。

我们的实验结果表明,游戏具有良好的可玩性和用户体验,但还有一些地方需要进一步优化。

我们相信,在未来的工作中,我们可以进一步改进游戏,使其更加完善和出色。

坦克大战游戏程序课程设计

坦克大战游戏程序课程设计

《程序设计应用基础》课程设计计划书坦克大战游戏1引言学习了C语言程序设计之后,我们粗略的掌握了程序设计的基本思路和要求,为了更加熟练的掌握这门计算机语言,我们选择编译一个经典小游戏——坦克大战。

通过课程设计提高我们的动手能力,把理论知识运用到实践当中。

在课程设计中,C语言的语法和逻辑严谨,对于初学者而言,有时忘记一个逗号或者分号整个程序便运行不了,经过了反复的调试,修改,最终形成可执行的程序。

在这个过程中,通过不断的练习,我们对C语言的掌握程度有明显的提高,同时,也锻炼了我们的头脑,使我们的思维更加科学严谨。

2设计方案2.1设计思路坦克大战游戏,一共两关。

不同的关卡,游戏地图、敌方坦克出现的种类不一样。

敌方坦克地图上最多存在4辆,击杀后会出现新坦克直至补足4个,当击杀坦克一定数值则敌方新坦克不会再增加。

击杀完所有坦克则胜利过关。

己方坦克也有复活次数,用完则失败。

另地图正下方有己方老家,若被敌方坦克攻破则游戏失败。

3程序设计与实施3.1程序的主要模块整个程序分为里表两大部分。

里部分由41*41的int地图数组组成,每个元素代表了该以该数组元素行列下标为地图坐标y,x那个单元的情况,不同的地图障碍物在该数组有不同的值,坦克在地图上占3*3个单元,在地图数组内相应坐标的3*3个元素内也对应特殊的值。

由地图数组值可以读出该坦克信息。

表部分则是根据里部分的地图数组通过gotoxy和printf函数在命令行界面打印出相应字符以构成游戏界面的。

程序中的每个函数操作都是通过里部分(地图数组)判定,然后对里部分(地图数组)操作,再由里部改变外部,由gotoxy和printf函数将可视化界面呈现给玩家。

也就是游戏主体函数内里表部分是一起操作的,不分开。

对于函数分类,程序又可分为三大类。

一类游戏辅助函数。

一个子弹系统,一个坦克系统。

子弹和坦克分别都是独立运作的系统,有少量信息交换。

3.2 主函数及其流程图主函数包括打印地图,实现游戏内置调节游戏速度的功能,判断坦克类型,判断敌我坦克是否存活,判断游戏胜负。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由于坦克在碰到墙,界面边界和“家”等阻碍物时要改变方向,所以在Tank里面必须对于每一种阻碍物要设计一个方法来作为应对策略,当然解决方法是把下一步的位置调整到上一步的位置。
子弹的属性:子弹前进的X轴和Y轴的速度——初始速度都为10,子弹的长度和宽度——初始的长宽都为10,子弹的位置,子弹的方向,子弹是否live等。由于不同方向的子弹其实是图片,所以这里要考虑不同图片的选择用对应的方向来指定,所以要建立Map键值对,用String属性的方向来指定不同的图片。如:imgs.put(“L”, bulletImages[0]);
3.3游戏主窗口………………………………………………………………….
四.系统的功能测试与调整
4.1菜单项测试………………………………………………………………….
4.2游戏运行测试………………………………………………………………
4.3坦克爆炸测试………………………………………………………………
4.4保存游戏信息测试…………………………………………………………
4.5帮助功能测试……………………………………………………………….
五.设计体会与小结…………………………………………………………
六.附录………………………………………………………………………
《JAVA面性对象程序设计》是电子商务专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA面性对象程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
界面中的元素都是在构造界面的时候用界面实例对象的add方法加入进去的,且“动”的元素要不断更新。
坦克主要由Tank类来实现。坦克的属性:速度(有X轴和Y轴的速度之分),坦克大小,坦克所在新的位置(X坐标和Y坐标),坦克是否还活着,行动方向等。所有的这些属性都有一个初始化值,从而在游戏一开始就可以运行。
void update(Graphics g)
图形用户界面的更新方法
void framPaint(Graphics g)
画图形用户界面的方法,需要重画的界面元素都在这个方法里面
void actionPerformed(ActionEvent e)
监听菜单项的方法
static void main(String[] args)
玩家需要从游戏输出数据中获得游戏信息,如坦克在往上行驶、坦克发了颗子弹、坦克爆炸等,这些均需要通过游戏数据的输出来告知玩家。
由于继承自Frame,Frame类中的方法paint,可以在窗口中绘制图形,即满足了游戏需要图形界面的需求;另有方法repaint可以刷新窗口,以及时提供游戏信息,故须创建线程,不断地刷新窗口,来获取最新的游戏信息。
2.1.2经济可行性
本软件为免费软件,将免费提供软件的下载、运行和维护服务,软件暂无收入,待公布之后随着使用者越来越多,将添加相应的广告、服务,从而增加收入,若使用者寥寥无几,将再次分析是否重新策划软件或者放弃开发,以减少损失。
设计一个图形用户界面,将所有游戏的元素都能在此用于界面上表现出来,界面能够接受用户的操作,具有人机交互功能。用户可以选择重新开始游戏,退出游戏,暂停游戏游戏帮助。
界面中包含我方坦克,和敌人坦克以及坦克发出的子弹和爆炸后的效果。
坦克:坦克分为两种,敌方坦克和用户控制的坦克。用户方和敌方坦克均可以发射子弹,可以改变路径的行走,且在行走过程中遇到墙等阻碍物和游戏边界时要改变方向,而不能一直顶着障碍物不放。坦克之间不能穿越,碰撞到后自动调换方向。
墙:游戏中的边界王家的坦克和敌人的坦克都不能越过,坦克的子弹也不能穿过。
(1).坦克可以上下左右移动
(2).坦克可以发子弹(可以连发)
(3).我的坦克击中敌人坦克时,敌人就消失(显示爆炸效果)
(4).我被击中后显示爆炸效果
(5).防止敌人坦克重叠运动
(6).玩游戏时可以暂停和继续
(7).记录玩家的成绩
软件使用swing、GUI、Socket、面向对象设计等技术实现,这些技术均已是非常成熟的技术,之前已有相当多使用这些技术的成功案例,故现使用这些技术是可行的。
}
}
return false;
}
子弹打到其他坦克上时用hitTank(Tank t)方法,子弹打到墙上时hitWall(CommonWall w)方法,打到金属墙上hitWall(MetalWall w),打到家hitHome(),当然在这些方法里,都要作相应的操作来表示接受到子弹的后果,:
还有,当子弹射击到对方(用户方对敌方)时,当敌方射击到用户方,用户方要减少生命值,没接受一枪,就执行
子弹:子弹可以由敌方和用户方发射,且发射出去的子弹可以直线移动,直到碰到障碍物就消失,子弹可以穿越树林和河流。敌方坦克受到一颗子弹攻击会爆炸从而导致死亡,死亡后坦克消失。用户方受到子弹攻击后会减少寿命,且受到四次攻击则死亡,此时如还有敌方坦克存在,则用户方输掉本次游戏。
爆炸:当子弹射击到坦克身上时,要产生爆炸效果。
方向:坦克和子弹都有方向,可以选择上下左右四个方向,且子弹的方向从属于坦克的方向。
3.1程序具体设计
图形用户界面需要用到抽象窗口工具即AWT和Swing来设计实现,由于游戏需要有功能按键来控制游戏的重新开始,退出,暂停,帮助等,所以在实现过程中,设计菜单项。
坦克都是调用各自类里面的draw函数来画出来,最后new一个图形面板出来,把所有的元素都add进面板就可以了。界面的构造在程序中由MyPanel类的构造方法来完成,即没构造一个用户类都会产生这样一个包含各种游戏元素在内的界面。由于画面是静止的,而我们游戏的画面要求是动态的,游戏中的坦克和子弹都是在不断的动,可穿透的普通墙体也在“动”,所以对于画面,必须要不断的更新,重画才能产生动态的效果。
在设计过程中,坦克出现的位置由坐标而定。用户之后的位置由键盘监听方向,按指定方向以恒定的速度前进——此速度为全局静态变量,当没有接受到键盘的控制时,则保持静止。敌方的坦克则是根据随机数来控制随机的方向和路径的,当敌方坦克撞到阻碍物时,会转回到前一步的位置,从而解决了坦克撞到阻碍物不回头的问题,这个功能由Tank类里的changToOldDir()方法实现。
* 9.记录玩家的成绩
import java.awt.*;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.*;
t.setLife(t.getLife() - 50); //受一粒子弹寿命减少50
接受4枪就死,总生命值200,当然方法里面还要做其他很多的判断,如生命值是否小于0,如果是的话就执行t.setLive(false);从而结束游戏。
坦克的爆炸效果独立出来用一个类来描述,爆炸的属性:位置和存活状态,另外,画爆炸效果的时候要取得用户界面控制,所以要定义private static Toolkit tk = Toolkit.getDefaultToolkit();其他的方法只能的大同小异。
菜单功能包括游戏的重新开始,暂停,退出等。这些功能的用户界面放在了MyPanel的构造方法里,用到的是面板类和相应的监听功能,实现出来很简单。
3.2主要方法和变量
属性
int Fram_width
游戏用户界面的全局静态变量宽度,初始化为600
int Fram_length
游戏用户界面的全局静态变量长度,初始化为500
菜单项可以选择开始新游戏,退出,暂停,继续,储存游戏记录,帮助功能,对于开始新游戏,退出两个功能,要给出提示,用户是否真的想继续操作!
菜单效果图:
4.2游戏运行测试
4.5帮助功能测试
五.设计体会与小结
本软件是使用java开发的小型游戏,其不仅实现了基本的功能需求,而且涉及到了java程序的编写的各个知识点,如事件监听、多线程、异常处理、数组、向量。图形界面等,所创建的每一个类都体现了java面向对象编程的特点,为以后的网络编程等java的高级运用打下了基础。由于本软件拓展方便、界面生动,多处使用了各种设计模式,是程序的编写效率更高,运行效率更高。由于程序中多数是面向父类或者面向接口的编程,以后如果要更换某些模块、元素的功能,以及添加功能,是非常容易的。
六.附录
程序代码:
package come.test9;
/*
* 1.坦克大战
* 2.坦克可以上下左右移动
* 3.坦克可以发子弹(可以连发)
* 4.我的坦克击中敌人坦克时,敌人就消失(显示爆炸效果)
* 5.我被击中后显示爆炸效果
* 6.防止敌人坦克重叠运动
* 7.玩游戏时可以暂停和继续
* 8.可以分关
类里面惯例有个构造方法,用来默认传递位置和方向,当然这里用到了同构,另外一个构造函数来取得子弹的状态和界面。darw()方法和move()方法来控制画子弹和移动子弹。
接下来就是要考虑到子弹打到个=各元素上的反应,敌方的子弹打到敌方时,不会杀死自己人,所以这里只要直接return true就可以了,不用移除子弹碰到的坦克,更不用调用爆炸来显示爆炸效果。
主函数,启动整个程序
用户类主要是综合调用各个类来协作完成游戏的设计。
2.3游戏主窗口
游戏主窗口是人机交互的窗口,对玩家而言,他们只和游戏主窗口打交道,并不关心游戏内部是如何实现的,所以游戏主窗口部分最重要的便是游戏数据的输入、输出。
在程序中须创建一个类,继承自Frame来创建一个窗口。
2.3.1游戏数据的输入
游戏中坦克需要能往上、下、左、右四个方向运动,故须设立4个按键,使其能操作坦克,另须设一个键控制坦克开火。为方便操作,本游戏设置WSAD分别表示上下左右,小键盘数字键4,表示开火。
相关文档
最新文档