欢迎来到天天文库
浏览记录
ID:21686045
大小:104.00 KB
页数:12页
时间:2018-10-23
《java开放性实验报告贪吃蛇》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、电子与信息工程系开放性实验报告JAVA程序设计开放性实验报告专业:计算机科学与技术班级:2012级2班学号:姓名:电子与信息工程系开放性实验报告实验2贪吃蛇游戏设计(4学时)1.实验内容(1)创建软件主窗体和相关控制菜单;在窗体中以图形模拟蛇的形状,使用键盘控制图形在窗体中任意移动,模拟贪吃蛇的行为.(2)在窗体中可以设置障碍或奖励物品,以达到游戏的娱乐性。2.预习内容JavaGUI编程;鼠标和键盘的事件处理;Java多媒体编程。3.实验类型综合性4.实验目的(1)了解JavaGUI编程特别是窗体,菜单;熟悉Java的事件委托处理机制
2、,能完成鼠标和键盘的事件处理;(2)熟悉Java中的多媒体技术如:音频文件的播放控制,游戏中各种事件的音效添加。熟悉Java中的绘图操作,可以使用绘图函数进行图形的绘制和重绘等基本操作;(3)熟悉模块的划分及游戏控制类的编写,了解相关的游戏设计和实现模式;(4)设计可视化界面,添加其他必要组件,对窗体进行相应的键盘事件处理,使蛇能移动,依据实验内容结合自己的设计想法,实现模拟贪吃蛇的游戏效果。5.实验要求依据实验内容,编写相关类,实现所需软件功能。6.实验过程(分析设计、源文件、执行结果)代码如下:电子与信息工程系开放性实验报告1、N
3、ode类publicclassNode{privateintx;privateinty;publicNode(){}publicNode(intx,inty){this.x=x;this.y=y;}publicintgetX(){returnx;}publicvoidsetX(intx){this.x=x;}publicintgetY(){returny;}publicvoidsetY(inty){this.y=y;电子与信息工程系开放性实验报告}publicStringtoString(){//方便类型转换//括号里不是String
4、类型通过toString来转换,不然会输出一个地址return"("+x+","+y+")";}@Override//伪代码可以理解为注释,重写:下面的方法名是否在父类中存在,如果没有//的话会报错。//publicinthashCode(){//假设Node是list集合里面,只有把Node节点对象//放在set集合时候写hashCode();finalintprime=31;intresult=1;result=prime*result+x;result=prime*result+y;returnresult;}@Override
5、//比较Node对象是否在同一坐标都要写上equals方法publicbooleanequals(Objectobj){if(this==obj){returntrue;}if(this==null){returnfalse;}if(getClass()!=obj.getClass())returnfalse;Nodeother=(Node)obj;if(x!=other.x){returnfalse;}if(y!=other.y){returnfalse;}returntrue;}}2、Worm类importjava.util.Li
6、nkedList;publicclassWorm{privateLinkedListworm=newLinkedList();intdir;publicstaticfinalintUP=-1;publicstaticfinalintDOWN=1;publicstaticfinalintLEFT=-10;publicstaticfinalintRIGHT=10;publicstaticfinalintROWS=400;//ROWS行。宽度范围,publicstaticfinalintCOLS=500;//COLS
7、列。长度范围publicWorm(){getWorm().add(newNode(90,90));//第90行90列,蛇扩大10倍getWorm().add(newNode(80,90));getWorm().add(newNode(70,90));getWorm().add(newNode(60,90));getWorm().add(newNode(50,90));dir=RIGHT;}publicvoidstep(){//走一步Nodehead=getWorm().get(0);//找到头节点intx=head.getX()+di
8、r/10*10;//X,Y横坐标与纵坐标inty=head.getY()+dir%10*10;if(x>0&&x0&&y
此文档下载收益归作者所有