软件工程设计课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-2014学年第二学期
《软件工程设计》
课程设计报告
题目:
自主模式匹配攻击双坦克运动规划程序设计专业:计算机科学与技术
班级:10级(2)班
:项莹莹
学号:1008210138
指导教师:王源
成绩:
计算机与信息工程系
2014年5月24日
目录
1.绪论 (3)
2. 开发环境介绍 (3)
3.课程设计的目的与要求 (4)
3.1 课程设计目的 (4)
3.2 课程设计的实验环境 (4)
3.3 课程设计的预备知识 (4)
3.4 课程设计主要容 (4)
4.系统分析 (5)
4.1可行性分析 (5)
4.1.1技术可行性 (5)
4.1.2经济可行性 (5)
4.2需求分析 (5)
5.课程设计容 (6)
5.1 程序中的主要方法、变量和函数 (6)
5.2程序具体设计 (7)
5.3游戏主窗口 (11)
5.3.1游戏数据的输入以及运行 (12)
5.3.2游戏数据的输出以及保存 (15)
6.设计体会与小结 (15)
7.参考文献 (16)
8.源程序 (16)
1.绪论
Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。
Java是一个纯的面向对象的程序设计语言,它继承了 C++ 语言面向对象技术的核心,Java舍弃了 C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的存空间,使得程序员不用再为存管理而担忧。
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。
目前,Java语言不仅是一门被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言。因为很多新的技术领域都涉及到Java语言,国外许多大学已将Java语言列入本科教学计划,而IT行业对Java人才的需求也在不断的增长,因此,掌握Java已经成为共识。
2. 开发环境介绍
Robocode 是2001年7月在美国IBM 的Web 站点alphaWorks 上公开的机器人(其图形为坦克的形状) 战斗仿真引擎。与通常玩的游戏不同的是:你必须利用Java 对机器人动作进行编程,给机器人设计的智能来自动指挥它, 而不是由键盘鼠标来控制它。不管你是初学者还是顶级程序员,你都可在Robocode 的世界中找到旗鼓相当的对手。把你写的机器人放到战场中,在与别人编写的机器人的战斗中考验自己的编程水平。在不断的完善过程中你将体会到学习所带来的无穷乐趣。当你的机器人融入了你的思想你将会发现你已经打开了Java编程甚至任何编程语言的大门。
由于Robocode 是基于Java 而产生的软件,所以它也具备了Java“一处编写,到处运行”的特点。Robocode 这个游戏为全世界的Java 开发者实现这个愿望,它把游戏风潮变成了教学工具,Robocode的小东西有着巨大的能量,Robocode 是一个比较上瘾的游戏,人们对它的上瘾程度令人吃惊。
战场是机器人之间进行战斗直至分出胜负的场地。主要的仿真引擎被置于其中,并且允
许您在这里创建战斗、保存战斗以及打开新建的或现有的战斗。通过界面区域的控件,您可以暂停或继续战斗、终止战斗、消灭任何机器人个体或获取任何机器人的统计数据。图2中三个机器人活动的地方就是战场。此外,在编译器界面下您可以通过菜单调用Robot Editor,它是Robocode本身自带的Java 语言编辑器,这个编辑器是发挥你创意的所在。它可以用于编辑生成机器人的 Java 源文件。
3.课程设计的目的与要求
3.1 课程设计目的
《JAVA面向对象程序设计》是计算机科学与技术专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA面向对象程序设计》课程后,进行的一次全面的综合训练,JAVA 程序设计的设计目的是加深对理论教学容的理解和掌握,使学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
3.2 课程设计的实验环境
JAVA程序设计语言及相应的集成开发环境,J2SDK和Robocode开发工具。
3.3 课程设计的预备知识
熟悉JAVA语言以及Robocode软件。
3.4 课程设计主要容
坦克大战游戏是在Robocode环境下编程的游戏,其中包括对坦克移动策略的编写、坦克射击策略的编写、坦克模式匹配策略的编写、构造函数的编写等等。游戏主要实现的功能有:
(1).坦克可以随机移动;
(2).坦克可以根据模式匹配策略射击敌方坦克;
(3).坦克可以按照一定的策略的发子弹;
(4).我方坦克打败敌方坦克时,会显示爆炸效果并消失;
(5).我方坦克被击中后,会显示爆炸效果;
4.系统分析
4.1可行性分析
4.1.1技术可行性
Robocode软件使用面向对象设计语言JAVA技术实现,这已是非常成熟的技术,之前已有相当多使用这些技术的成功案例,故现使用这些技术是可行的。
Robocode软件为你处理好一切细节。你所做就是为你的机器人坦克编写智能程序,让它能够移动、进攻、防御、躲避、开火。而它的对手就是跟你一样其他程序员编写机器人程序。
这就是Robocode魅力所在,最简单,只用几十行代码,就能立刻创造出一个简单但完整机器人,你可以立即将它装入Robocode 引擎中,再从Robocode 自带的那些水平不一的示例机器人中选取一个进行一番对战。你可以不停的修改你的程序,设计新射击模型、躲避模型、移动模型,当你打败了那些示例机器人,你还可以在网上下载由其他程序员编写的水平更高的机器人,与它们比试一下,看看自己的水平到底如何。
开发Robocode,也是一个极佳的学习Java 语言的过程。对于初学者来说,这是学习各种基本语法好途径:类,方法,事件处理等等。当你入门之后,需要进一步提高机器人的“智力”水平,就需要使用更好的策略:如何预测对手的行动路线,如何躲避对手的攻击......你不得不创建更多类来应对更多情况,你将学习使用接口、继承等等Java 高级语言特性。随着你的机器人的“智力”水平的提高,你的编程能力也就跟着水涨船高了。
4.1.2经济可行性
本软件为免费软件,将免费提供软件的下载、运行和维护服务,软件暂无收入,待公布之后随着使用者越来越多,将添加相应的广告、服务,从而增加收入,若使用者寥寥无几,将再次分析是否重新策划软件或者放弃开发,以减少损失。
硬件要求也比较低,系统安装最小环境要求:CPU:Pentium2/400MHz 以上存:64MB 以上硬盘:10M 以上
4.2需求分析
利用Robocode软件的编译器,将所有游戏的元素都在此界面上表现出来。界面中包含我方坦克、敌人坦克、双方坦克的生命值、比赛的速度、比赛的回合等。
坦克:坦克分为两种:我方坦克和敌方坦克。我方和敌方坦克均可以发射子弹,可以改