“大鱼吃小鱼”课程设计 报告

上传人:仙*** 文档编号:28555167 上传时间:2021-08-30 格式:DOC 页数:15 大小:1.41MB
返回 下载 相关 举报
“大鱼吃小鱼”课程设计 报告_第1页
第1页 / 共15页
“大鱼吃小鱼”课程设计 报告_第2页
第2页 / 共15页
“大鱼吃小鱼”课程设计 报告_第3页
第3页 / 共15页
点击查看更多>>
资源描述
学号12080202112013-2014学年 第二学期面向对象程序设计课程设计报告题目: 大鱼吃小鱼专业:网络工程班级:网络工程12(2)姓名: 管蔚雄指导教师: 徐宁成绩:计算机与信息工程系2014年 6 月 6 日目 录第一章 设计的目的与要求.2目录中,页码应该从正文的第一页算起。你的页码设置是错误的。另外,word有目录的自动生成功能,请查询其使用方式。 1.1设计目的.21.2设计要求.21.3实现功能.21.4界面设计.2第二章 开发平台与技术.3 2.1java语言.3 2.2greenfoot.42.3环境配置.5第3章 模块具体实现和主要动画触发.7小结.8参考文献.8附录.92计算机与信息工程系 面向对象程序设计课程设计报告 大鱼吃小鱼第一章 设计目的与要求1.1 设计目的 通过用greenfoot来设计“大鱼吃小鱼”这个游戏,来熟悉并学会运用greenfoot这个软件的同时巩固我们专业课java知识。你这课程设计的目的写的比我给的任务书还少啊。请从网络中参考别人的课程设计目的,多写几行。1.2 设计要求 1.熟悉GreenFoot平台; 2.对游戏中所需类进行设计; 3.写出源程序文件; 4.对游戏进行调试和分析。1.3 实现功能敌方有三类鱼(鲨鱼、蓝鱼和小黄鱼),每一类鱼的对象出现后,在游戏中处于随机自由移动状态,敌方大鱼能吃小鱼;主角为红鱼且红鱼只有一条,玩家通过键盘方向键控制移动,红鱼有两级状态,初始时处于低级状态,只能吃黄鱼,能被蓝鱼或鲨鱼吃掉。初级状态的红鱼经过重重险恶且吃掉一定数量的黄鱼升级后,能吃黄鱼和蓝鱼,但还是能被鲨鱼吃。吃掉一定数量的鱼,则显示成功信息,结束游戏;若红鱼被鲨鱼或蓝鱼吃掉,则显示失败信息。 1.4 界面设计红鱼是主角,玩家通过键盘方向键控制移动,红鱼有两级状态:初级状态只能吃小黄鱼,会被蓝鱼和鲨鱼吃掉;吃掉20条小黄鱼后回升级即长大,能吃掉蓝鱼,但还是能被鲨鱼吃掉。红鱼升级后,吃黄鱼数量达到40,蓝鱼数量达到20,显示成功信息,结束游戏;若红鱼被鲨鱼或蓝鱼吃掉,显示失败信息。 敌方大鱼能吃小鱼,即鲨鱼吃蓝鱼和黄鱼,蓝鱼吃黄鱼。1.这不是界面设计,而是实现功能。你的游戏可以升级,但是游戏的背景界面只牵涉到一个。2.文本中有图时,要在图片下方居中给图一个名字,“图1 用户界面”,在文档中要写“如图1所示”这样的提示内容。3.此处用户界面的截图,应该是你导出后用户操作界面。不应该是你的开发界面。 第二章 开发平台和技术2.1 Java语言简单性:Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。Java语言的简单性主要体现在以下三个方面:Java的风格类似于C+,但是Java摒弃了C+中容易引发程序错误的地方,如指针和内存管理。Java提供了丰富的类库。Java自身的基本系统所占用空间小于250KB(即编译器和解释器),它实现了垃圾自动收集,简化了内存的管理工作。可靠性和安全性:Java不支持指针,这杜绝了内存的非法访问。Java的自动单元收集防止了内存丢失等动态内存分配导致的问题。Java解释器运行时实施检査,可以发现数组和宇符串访问的越界;Java提供了异常处理机制,以便从错误处理任务恢复。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进进入解释器时,首先必须经过字节码校验器的检查,然后Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域。此处的内容介绍显得没头没脑,如果你想说明其特点,应该在前面加一个提示信息,如“java语言的特点”等。跨平台性:文档中应有简单说明,不应该加一副图就结束。面向对象:把程序实现的每一个具体功能作为类,然后用类来构成对象。优点是代码可重用、系统易扩展。多线程:通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,提高系统的运行效率。分布性:分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上;操作分布是指把一个计箅分散在不同主机上处理。它支持以上两种分布性。对于前者,Java提供了一个叫做URL的对象,利用这个对象,可以访问Internet上的所有网络资源;对于后者,Java提供的基于流套接字的网络编程接口,为实现网络的应用和Web应用提供了方便。丰富的类库和API文档特点无需面面具到。你的文章是介绍你的设计思路和内容的,对所用工具做简单介绍就可以了。2.2 GreenFoot Greenfoot是由肯特大学的Michael和Martin开发的一款游戏程序设计平台,主要用于程序设计的辅助教学。它是一个功能完整的开发环境,可以方便地编写游戏和进行游戏模拟。Greenfoot也可看做是一个二维图形程序框架和集成开发环境的结合体,它支持面向对象程序设计的全部特性,特别适;多打了符号合进行基于组件的可视化编程。 Greenfoot具备以下几个特点:(1) 可视化程序设计界面 (2)游戏案例作为项目单元 (3)良好的社区支持2.3 环境配置 只需给出自己开发时的环境配置就可以。下面的集成开发环境介绍和安装步骤不需要。开发运行环境:JDK(Java Development Kit)+文本编辑器( UltraEdit ) JDK是java开发工具包,包括java类库、java编译器、java解释器、java运行环境和java命令行工具。 IDE:集成开发工具 JCreator (Xinox) JBuilder (Borland) Visual J+(MicroSoft) VisualAge for Java(IBM) NetBeans beans.org Eclipse http:/www.eclipse.org/downloadsJDK的安装安装:和一般应用程序相似,有向导指引。环境变量的设置:Path使得系统可以在任何路径下识别java命令。Classpath为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别。 JDK的安装路径:C:Javajdkpath路径为:C:Javajdkbinclasspath路径为:. ; C:JavajdklibGreenfoot安装: Greenfoot软件直接在自己的pc机上安装即可用。第3章 模块具体实现和主要动画触发此处应该是你文章的主要部分,你应该有条理的介绍自己的思路。以及问题的解决思路,你的介绍太过简单潦草,缺乏条理性。涉及的类及类名给出编号,如3.1之类。 本实验中world类中有一个子类sea,actor类中有十个子类,分别是主角类即红鱼类Redfish,黄鱼两个类yellowfish1与yellowfish2,蓝鱼两个类bluefish1与bluefish2,鲨鱼类shark,水泡类blister,一个计数器Counter,一个Scoreboard,一个success。1.应首先对主界面做介绍,给出用户界面的截图,该图应是你导出后的用户操作界面。不应该是你的开发界面。你可以将环境中类的组织结构截图下来。2.文本中有图时,要在图片下方居中给图一个名字,“图1 用户界面”,在文档中要写“如图1所示”这样的提示内容。3.分别介绍游戏中用到的类,类的组织结构可以用开发环境中类组织结构图,截图下来放在文档中,更易于人们理解。各类实现的效果给出主要问题的解决思路。如使鱼更换方向,如何升级等。你的介绍实在需要好好理一理思路。sea类:添加了一个红鱼的对象即主角;计数器的两个对象分别是用于计数吃掉黄鱼的数量和吃掉蓝鱼的数量;黄鱼与蓝鱼在世界里处于随机出现自由移动状态;实现计数器加一的方法;游戏结束的方法;游戏成功的方法;背景音乐循环播放。Redfish类:红鱼设置四种状态,在构造方法中设置了其初始状态,然后通过if判断语句来限制它的状态;在act方法中设置了关联键盘向左移游戏动作;吃黄鱼蓝鱼动作,具体实现通过if语句控制;鱼升级及游戏成功也是在act方法中用if语句来限定。yellowfish1与yellowfish2类:黄鱼在边界消失。bluefish1与bluefish2类:蓝鱼在边界消失;在其act方法里设置了吃黄鱼,通过if语句,并调用sea类的getCount()方法,其数值小于等于20情况下可以吃红鱼。shark类:鲨鱼在边界消失;在act方法中设置了吃黄鱼,蓝鱼,红鱼,并且当吃到红鱼,游戏结束,调用sea类的gameover方法。blister类:水泡在边界消失。ScoreBoard与success类:主要是绘制分数界面背景。Counter类:用于计数的类。小结 此次课程设计,使我更扎实的掌握了本学期专业课java知识。当然,设计过程中遇到了一些困难和问题,实在想不出来的问同学或请教老师,终于游逆而解。 课程设计体现出自己综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱之处。实践出真知,通过亲自设计,使我们掌握的知识不再是是纸上谈兵。说实话,本次课程设计花了不少时间,时间主要花在游戏设计即代码上,游戏做好后,感觉所花时间是值得的,个人对自己设计游戏较满意,虽然不是做得那么精致,还存在些许需要改进的地方,我想以后有机会继续完善它。 我认为,在这次课程设计中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验中,我学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识。参考文献:Greenfoot官方网站;Java程序设计教程(牛晓太 主编)。参考文献格式不对。附录:(部分代码)sea类:import greenfoot.*; public class sea extends World Counter mycounter; Counter mycounter1; GreenfootSound music;public sea() super(800, 600, 1); addObject(new Redfish(),400,300); mycounter=new Counter(吃掉的yellowfish数量:); mycounter1=new Counter(吃掉的blue数量:); addObject(mycounter,100,20); addObject(mycounter1,300,20); music=new GreenfootSound(justin bieber - mistletoe.mp3); public void act() music.playLoop(); if(Greenfoot.getRandomNumber(100)3) addObject(new yellowfish1(),0,Greenfoot.getRandomNumber(600); addObject(new yellowfish2(),800,Greenfoot.getRandomNumber(600); if(Greenfoot.getRandomNumber(100)20 ) setImage(oldR); else setImage(smallR); move(5); if(Greenfoot.isKeyDown(left) if(sea)getWorld().getCount()20 ) setImage(oldL); else setImage(smallL); move(-5); if(Greenfoot.isKeyDown(up) setLocation(getX(),getY()-5); if(Greenfoot.isKeyDown(down) setLocation(getX(),getY()+5); if(sea)getWorld().getCount()20 ) if(getImage()=smallL) setImage(oldL); if(getImage()=smallR) setImage(oldR); getbluefish(); getyellowfish(); if(sea)getWorld().getCount()40&(sea)getWorld().getCount1()20) Greenfoot.stop(); (sea) getWorld().music.stop(); (sea) getWorld().gameWin(); public void getyellowfish() yellowfish1 yellow1=(yellowfish1)getOneIntersectingObject(yellowfish1.class); yellowfish2 yellow2=(yellowfish2)getOneIntersectingObject(yellowfish2.class); if(yellow1!=null) Greenfoot.playSound(pop.wav); yellow1.disappear(); (sea) getWorld().countChange(); if(yellow2!=null) Greenfoot.playSound(pop.wav); yellow2.disappear(); (sea) getWorld().countChange(); public void getbluefish() bluefish1 blue1=(bluefish1)getOneIntersectingObject(bluefish1.class); bluefish2 blue2=(bluefish2)getOneIntersectingObject(bluefish2.class); if(blue1!=null) blue1.disappear(); Greenfoot.playSound(eating.wav); (sea) getWorld().countChange1(); if(blue2!=null) blue2.disappear(); Greenfoot.playSound(eating.wav); (sea) getWorld().countChange1(); 14
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!