Java算法实训飞机大战实验报告.docx
- 文档编号:30103050
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:21
- 大小:918.25KB
Java算法实训飞机大战实验报告.docx
《Java算法实训飞机大战实验报告.docx》由会员分享,可在线阅读,更多相关《Java算法实训飞机大战实验报告.docx(21页珍藏版)》请在冰豆网上搜索。
Java算法实训飞机大战实验报告
淮阴工学院
实验报告
2016-------2017学年第1学期
学院计算机与软件工程学院
课程名称算法实训
班级达内1151
学号**********
姓名陈龙
指导教师达内讲师
算法实训实验报告
一、实训目的及意义
进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。
学习java的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。
通过实习,巩固大二所学专业的基本知识,提高分析、判断和处理实际问题的能力,锻炼自己的实际动手能力,增强自己的团队协作意识,了解软件开发的思考角度和主要流程。
为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。
二、实训任务
实习期间,通过学习一个简单的Java程序——飞机大战,了解和掌握Java编程的基础,如构造器、API接口等。
最后可以独立完成一个小程序。
三、实习训语言Java的特点
1.Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。
另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。
特别地,Java语言不使用指针,并提供了自动的废料收集,不必为内存管理而担忧。
2、Java语言是一个面向对象的
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。
总之,Java语言是一个纯的面向对象程序设计语言。
3、Java语言是分布式的
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。
Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4、Java语言是健壮的
Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。
对指针的丢弃是Java的明智选择。
Java的安全检查机制使得Java更具健壮性。
5、Java语言是安全的
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。
除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
6、Java语言是体系结构中立的
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。
这种途径适合于异构的网络环境和软件的分发。
7、Java语言是可移植的
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。
Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
8、Java是高性能的
与那些解释型的高级脚本语言相比,Java的确是高性能的。
事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
9、Java语言是多线程的
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
通常有两种方法来创建线程:
其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。
值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。
线程的活动由一组方法来控制。
Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
10、Java语言是动态的
Java语言的设计目标之一是适应于动态变化的环境。
Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。
这也有利于软件的升级。
另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
四、实习时间
2016年12月12日——12月16日
五、实训项目--飞机大战
【1】方案
1>.需求:
2>.需求分析:
由图2可以看出游戏中至少有4个类,Hero(英雄机),Airplane(敌机),Bee(小蜜蜂),Bullet(子弹)。
3>.类的设计
1.创建4个类
敌机:
Airplane
小蜜蜂:
Bee
子弹:
Bullet
英雄机:
Hero
2.两个接口
敌人:
Enemy
奖励:
Award
3.一个父类
飞行物:
FlyingObject
4.一个测试类
ShootGame其中,敌机继承敌人,继承飞行物子弹,飞行物,继承飞行物小蜜蜂继承奖励,继承飞行物
5.飞行物父类的对象和行为
对象:
图形长宽,横纵坐标
行为:
走步
6.奖励接口的对象和行为
常量:
奖励0:
双倍火力,奖励1:
一条命
抽象方法:
奖励类型
7.敌人接口
抽象方法:
分数
8.窗体类设置
测试类ShootGame继承面板
静态块:
加载图形资源(方法区)初始化静态资源
在mian()中画窗体
【2】项目目录如下:
需要建Airplane,Award,Bee,Bullet,Enemy,FlyingObject,Hero和ShootGame八个类。
其中,有两个是接口(即:
敌人:
Enemy 奖励:
Award)
一个测试类(也是图形界面窗口)ShootGame
有一个父类:
飞行物FlyingObject
敌机继承敌人,继承飞行物
子弹,飞行物,继承飞行物
小蜜蜂继承奖励,继承飞行物
【3】程序代码如下:
1.Airplane
2.Bee
3.Bullet
4.Hero
5.Award
6.Enemy
7.FlyingObject
8.ShootGame
1>.加载图片
2>.绘制窗体
9.Paint图形
1>.代码重构
1.1>.在FlyingObject类中添加get.set方法(可在Source中生成)
1.2>.在Airplane,Bee,Bullet中添加构造方法
1.3>.在ShootGame中画出英雄机,子弹,和飞行物
10.飞行物出场(工厂方法):
nextOne():
随机出现蜜蜂和飞机
游戏界面效果:
11.重写
1>.敌机:
扩充走步
2>.小蜜蜂:
扩充走步
3>.子弹:
扩充走步(有参构造)
4>.英雄机:
图片交换
其中,对比敌机走步与子弹走步,y是相反的,因为子弹是由英雄机发射,向上飞行,敌机只有下落功能。
蜜蜂是倾斜下落的,所以会发杂一些。
英雄机的走步就是图片的交换,形成动画效果
见图1,图1中有hero0和hero1两张图片,分别如:
图hero0图hero1
12.飞行物走步
13.子弹入场(数组追加)
1>.在Hero中添加发射子弹的方法
2>.在ShootGame中进行子弹入场(数组追加)
14.碰撞检测
1>.在Hero中添加如下代码
2>.在ShootGame中进行碰撞检测
15.删除越界
1>.在hero,Airplane,bee,bullet中添加越界方法
hero类中需添加的越界方法
Bullet类中需添加的越界方法
Airplane和bee类中需添加的越界方法
15.状态切换
1>.画分和命
2>.画状态
2.1>.状态切换
游戏界面效果:
六、总结
这次实训让我学到了很多东西,让我整体素质有所提升,明白了很多做人做事的道理。
第一、毕业了以后不是学习的结束,而是学习的开始,在当今社会,只有不断地汲取新信息新知识,才能获得事业进步的动力,武装自己的头脑,提升自己的能力,扩展自己的视野。
第二、学习要联系实践,一个人的价值是通过实践活动来实现的,也只有通过实践才能提升人的品质,彰显人的意志。
学到的理论只有通过实践的检验才是合格的。
第三、我们要做一个勤于思考的人,我们只有注意观察、分析、总结、提炼,才能积累经验,使自己的工作做出成绩。
同时我也明白了遇到麻烦解决的办法有很多:
第一、就是上网查询,不懂的可以查查,不要一不会就去问别人,得先自己想办法解决;第二。
请教别人。
当自己查资料解决不了,就去问一下别人,不要老死扣着,反而浪费时间。
当然遇到麻烦的事情千万不要着急,越着急越然人昏头转向,越着急越解决不了问题,还不如心平气静的想想解决办法,或者转换下思维,先做其他的事情,静下来时再去思考。
遇到问题时,要保持一颗平常心。
第四、有的时候人与人的差别并不大,但工作热情的不同却使两个人做出完全不同的成绩,只有具备热情,才能保证你能发挥自己全部的能量和才能。
一个人的能力有差异,但关键是看你能发挥出多少,这就取决于热情。
用自己的热情来点燃斗志。
而且热情是可以传递的,一个人全力投入工作,他可带动周围的人,感染周围的人全力以赴,是整个团队赶出骄人的成绩。
最后,衡量一个人是不是人才,不仅是看知识掌握的多少,当代社会更看重的是一个人的沟通能力。
原来一直觉得学校的知识是没用的,当真正用到了才后悔自己当时为什么不好好学习。
所以说实习注重实践和在学校学习理论是相辅相成的。
平时在学校学的不知道是否有用,但当实习后我们就清楚学习的知识到底有什么实际应用,和当今社会的发展有什么联系。
只有到公司亲身实践,才让我们更加明确了那些知识是能跟上时代发展,那些知识已经落后了,什么样的人才是当今社会需求的。
同时通过实习让我们认识到了自己知识掌握的不足,更加激发了我们学习的热情。
而这一次的专业实习,让我明白了大学生生产实习是引导我们学生走出校门,走向社会,接触社会,了解社会,投身社会的良好形式;是培养锻炼才干的好渠道;是提升思想,树立服务社会的思想的有效途径。
通过参加专业实习活动,有助于我们在校中学生更新观念,吸收新的思想与知识。
近四个月的实习,虽然时间很短,却让我从中领悟到了很多的东西,而这些东西将让我终生受用。
专业实习加深了我与社会各阶层人的感情,拉近了我与社会的距离,也让自己在实践中开拓了视野,增长了才干,进一步明确了我们青年学生的成材之路与肩负的历史使命。
社会才是学习和受教育的大课堂,在那片广阔的天地里,我们的人生价值得到了体现,为将来更加激烈的竞争打下了更为坚实的基础。
我在实践中得到许多的感悟!
通过在达内的实习,让我的专业知识有了进一步的提高,缩短了我与社会接轨距离。
让我懂得在工作上还要有自信。
自信不是盲目地自夸,而是对自己的能力做出肯定。
社会经验缺乏,学历不足等种种原因会使自己缺乏自信。
其实有谁一生下来句什么都会的,只要有自信,就能克服心理障碍,那一切就变得容易解决了。
同时知识的积累也是非常重要的。
知识犹如人的血液。
人缺少了血液,身体就会衰弱,人缺少了知识,头脑就要枯竭。
这次接触的酿造业,对我来说很陌生,要想把工作做好,就必须了解这方面的知识,对其各方面都有深入的了解,才能更好地应用于工作中
总之,通过这次实习,确实让自己成长了许多。
在工作中,总会遇到这样那样的问题,当前的软件的功能日趋复杂,不学到一定的深度和广度是难以在实际工作中应付自如的。
因此反映出学习的还不够,缺点疏漏。
需再加以刻苦钻研及学习,不断开拓视野,增强自己的实践操作技能,为以后能做好工作而努力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 算法 飞机 大战 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)