admin管理员组

文章数量:1532656

2024年1月13日发(作者:)

科技视界使用Java制作贪吃蛇游戏雷丽娟郑永彬渊九江职业大学信息中心袁江西九江332000冤揖摘要铱野贪吃蛇冶游戏是一个简单而大众的游戏袁它因操作简单尧娱乐性强而广受欢迎遥本文基于Java技术和Eclipse开发环境袁开发了一个操作简单尧界面美观尧功能较齐全的野贪吃蛇冶游戏遥整个游戏程序分为四个类模块袁主要实现了蛇从默认方向开始移动袁通过方向键来改变蛇的运行方向袁在随机的地方产生食物袁吃到食物就变成新的蛇体袁碰到壁或自身则游戏结束的过程遥通过本游戏的开发袁达到学习Java技术和熟悉软件开发流程的目的遥揖关键词铱Java曰Eclipse曰野贪吃蛇冶游戏近年来袁Java作为一种新的编程语言袁以其简单性尧可移植性和平台无关性等优点袁得到了广泛地应用袁特别是Java与万维网的完美结合袁使其成为网络编程和嵌入式编程领域的首选编程语言遥Eclipse是一个开放源代码的尧基于Java的可扩展开发平台袁同时它也是是著名的跨平台的自由集成开发环境袁它以其友好的开发界面尧强大的组件支持等优点袁得到广大程序员的接受和认可遥贪吃蛇是人们手机中是一个很常见的一个经典小游戏袁人们对它并不陌生袁在紧张的现实生活中给人们带来了不少的乐趣袁编写这个贪吃蛇小游戏能让人们在业余时间里适当的放松袁保持好的心态遥在这个程序中我采用了Java中的图形用户界面技术袁同时引入了线程来编写遥本次设计主要是对我之前所学Java知识的一个巩固袁不仅提高了我综合运用以前所学知识的能力袁同时也锻炼了我的实际动手能力遥整个游戏代码简单易懂袁用户在娱乐的同时也可以简单的看一下代码袁有助于初涉Java者语言水平的提高遥贪吃蛇的核心算法是如何实现移动和吃掉食物袁在当前运动方向上头指针所指的位置之前添加一个节点袁然后删除尾节点袁最后把链表中的所有节点依次画出来袁这样就可以达到移动的效果遥对是否吃到食物,需要对蛇和食物进行碰撞检测袁检测未碰撞在一起则只需要执行移动操作袁碰撞在一起时表示吃到食物袁则只需把食物入队即可袁即在蛇的节点链表上再添加一个节点袁从而达到身体增长的效果遥本次设计的重点之处在于编程思想的形成袁设计图像界面袁产生随机食物及其位置遥难点在于程序编写中袁整个程序框架的架构遥这就要求我们不仅要对这个游戏的玩法特别熟悉袁而且还要熟练掌握Java语言遥实现贪吃蛇的四个类模块袁分别为游戏界面尧蛇尧食物和方向遥其具体设计如下院1产生游戏界面包括界面的位置1冤在launch()尧大小的设定袁绘制游戏界面袁启动键盘监听器遥_SIZE);设定界面的位置nds(200,200,COLS*BLOCK_SIZE,ROWS*BLOCK中添加代码院ible(true);尧大小遥便随时更改蛇头方向Listener(newKeyMoniter());添加键盘监听器袁以画画面newThread(newPaintThread()).start();启动线程,不停的重2冤private为使得界面不断更新class袁需借助线程来完成袁线程如下院privatePaintThreadpublicbooleanimplementsRunnable{while(flag){voidrun()flag=true;{repaint();try{}(200);(InterruptedExceptione){}tackTrace();作者简介院雷丽娟渊1986.12要冤袁女袁九江职业大学信息中心袁助教遥郑永彬渊1980.8要冤袁男袁九江职业大学信息中心遥if(gameOver){}}flag=false;通过在循环体中设置每休眠}}200毫秒则重画一次界面袁使得界面不断更新3冤袁当蛇移动时产生一个动画的效果遥public绘制游戏界面voidColorpaint(Graphicsg){or();c=or();ct(0,or();0,ROWS*BLOCK_SIZE,COLS*BLOCK_SIZE);for(inti=1;i

科技视界Graphicspaint(gOff);gOff=phics();age(offScreenImage,0,0,null);2代表方向的枚举类5冤}在主线程中启动程序院newYard().launch();袁publicenum用来标识蛇的移动方向3蛇类Dir{L,U,R,D}移动方向分为四个遥袁分别为左上右下遥类袁表示冤袁对蛇与食物进行碰撞检测该类中用一个小矩形表示蛇的一节身体袁判断蛇是否吃到食物渊用一个内部袁碰撞成功袁则要对score进行加分袁蛇身增长一节袁即增加一个矩形块袁同时再随机产生一个食物遥移动时必须从蛇头开始袁所以蛇不能向相反方向移动袁也就是蛇尾不能改作蛇头遥如果不按任何键袁蛇自行在当前方向上前移袁当游戏者按了有效的方向键后袁蛇头朝着指定的方向移动袁一步移动一节身体袁此功能可通过监听键盘事件来实现袁当按了有效的方向键后袁先确定蛇头的位置袁然后蛇身体随着蛇头移动袁图形的实现是从蛇头的新位置开始画出蛇1冤class内部类Node{Node袁代表蛇的身体遥intinth=_SIZE;intw=_SIZE;Dirrow,col;Nodedir;Nodenext=null;Node(intprev=null;=row;row,intcol,Dirdir){=col;}=dir;voiddraw(GraphicsColorg){or();c=or();BLOCK_SIZE,w,h);ct(*_SIZE,*or(c);2冤}}public监听键盘事件void袁intkeyPressed(KeyEvent根据键盘的有效按键确定蛇头方向e){switch(key){key=Code();右袁则更改蛇头方向//当按下向左的键时_LEFT:袁否则退出袁判断此时蛇头的方向是否向右袁不改变蛇头方向袁通过此条件设定可袁如果不向以控制蛇不会来回跑遥if(!=Dir.L;=Dir.R)_UP:break;if(!=Dir.U;=Dir.D)_RIGHT:break;if(!=Dir.R;=Dir.L)_DOWN:break;if(!=Dir.D;=Dir.U)}break;140科技视界Science&TechnologyVision3冤}位置//public判断蛇是否吃到食物voideat(Egge){袁碰撞检测并且对蛇添加一个节点袁如果蛇和食物碰到一起了if(t().intersects(t())){袁同时每吃一个食物就增加袁就让食物随机出现在新的5分遥ar();re(re()+5);ead();}}publicRectanglegetRect(){BLOCK_SIZE,head.w,head.h);returnnewRectangle(*_SIZE,*Yard.移动一节身体4冤}蛇移动袁袁然后绘制出来其本质可以看成每次将蛇尾添加到蛇头的方向上遥蛇移动时是总是根据蛇头的方向一步曰此步骤可分解为两步privatevoid院在蛇头方向添加一个节点院NodeaddToHead(){switch(){n=null;caseL:n=newcaseU:break;Node(,-1,);n=newNode(-1,,);caseR:break;n=newNode(,+1,);caseD:break;n=new}break;Node(+1,,);=head;=n;head=n;然后删除蛇尾节点}size++;privatevoidif(size==0)return;deleteFromTail()院{tail=;=null;蛇的绘制是从蛇头的新位置开始依次遍历整个节点}voiddraw(Graphicsif(size==0)return;g){move();for((g);n=head;n!=null;n=){}}privateaddToHead();voidmove(){//deleteFromTail();移动后判断是否撞边或者撞尾袁即死亡蛇在每次移动的同时应判断是否撞墙或撞尾}checkDead();袁如果出现撞墙或撞尾的情况则游戏结束private//void院检测是否撞墙checkDead(){row>){if(<1||>||<3渊下转第122||head.页冤.. All Rights Reserved.

科技视界对应的实验内容设计成不同的任务袁如院淤将机械手的任务设定为实现机械手五自由度运行控制曰于将立体车库的任务设定为X尧Y尧Z轴2.3实验室是提高职业素养的重要基地文化氛围建设袁其环境状况及管理水平直接位置控制曰盂将材料分拣的任务设定为完成物料传送尧识别尧分拣等遥影响着学生的学习成长及综合素质的提升遥实验室文化体现了实验室在实验过程中可将部分任务进一步分解袁如野机械手冶模拟控制袁将其特定的精神氛围袁是实验室内涵建设的重要内容遥为营造良好的实验运送物料的动作过程分解成机械手的上升尧下降尧左移尧右移以及对工教学环境袁根据PLC实验室特点袁做好以下三方面文化氛围建设院渊1冤件的夹取尧松开等多个工步袁让学生学习各工步相应的控制方案及程实验台摆设采用野岛式冶布局袁每4台组合成1个野工作小岛冶袁有利于序袁然后应用实物进行调试遥在各项任务的驱动下袁将PLC与外部的学生的学习交流及方便教师在实验教学中的巡回指导袁整机式实物控具体实物控制对象组成控制系统袁提高学生对较复杂程序的识读能力制对象采用独立工作台放置袁从而优化实验室布局遥整个硬环境建设袁和灵活应用多门课程知识的能力袁增强学生的工程意识遥为了更直观体现器物文化袁显现规模效应曰渊2冤制作实验室简介牌袁简要介绍实验地观测PLC工程运行状态袁在个别实验项目中袁应用组态监控技术设室基本信息袁如名称尧功能及主要设备等袁根据本实验室特点制定相应计制作了工程组态画面圆援圆援猿规章制度袁并制作成制度牌安装上墙袁形成制度文化氛围曰渊3冤制作特色实验项目展板袁对该项目的实验目的尧原理及操作步骤进行说明袁如这一层次的实验网络通信实验袁在每台PLC对应的计算机上实现模拟监控遥袁重点学习PLC的通信功能及通信模块的使用运料小车的控制实验遥对于整机式实物控制对象袁则可根据该成套设方法袁内容包括模块的认识尧网络连接尧网络参数设置尧通信程序编写备的特点制订相应的设备介绍及操作规程袁通过以上措施袁使实验室等环节袁要求学生熟悉三菱PLC通信协议的基本格式袁掌握PLC串口环境彰显职业特色尧学科文化遥通信调试方法袁能借助工业控制组态程序渊如组态王尧力控等冤袁实现计算机与PLC之间的数据交换和处理袁从而培养学生对PLC组网技术3结语的应用能力圆援圆援源遥实验室建设是一项系统工程袁需要全方位尧多角度地考虑建设方案袁对实验室的功能尧性质尧规模尧承担的教学科研任务等方面进行统开放实验教学以学生为主体开放实验袁旨在调动学生的学习能动性袁激发筹规划遥PLC实验室的建成袁为应用型人才的培养提供了有力的硬件学生的创造能力遥实验内容具有开放性尧灵活性和主动性的特点遥在教保障袁不但满足了实验教学和学科建设的要求袁也为教师提供了科研学过程中袁允许学生根据自己的实际情况袁选择不同的实验内容袁利用创新及对外服务的基地遥各种设备袁通过不同的途径完成实验袁锻炼学生综合利用所学知识的能力遥根据PLC技术课程应知应会内容袁将开放实验内容分为两个类型院第一类袁为设计性实验项目袁着眼于对已有实验内容的改进及设备的拓展应用袁将某些实验项目的控制要求或程序执行结果重新设置袁咱员暂揖参考文献铱由学生设计新的控制程序袁并完成硬件连接袁如在电梯模拟控制实验咱圆暂姜新桥,等.PLC应用技术项目教程[M].北京:电子工业出版社,2010.8.中袁将楼层的数目进行更改曰在野机械手冶模拟控制实验中袁改变机械手18-21.卢学英,等.建设高标准的可编程控制器实验室[J].实验技术与管理,2000,04:旋转角度参数等遥第二类袁为自选课题袁这一类型实验由学生自主选择咱猿暂咱源暂陈福兰王晓艳..面向职业教育创建PLC实验室的构想PLC实验室建设[J].中国电力教育[J].电子质量,2008,8:136-137.,2008,7:56-57.实验内容袁运用所学知识袁独立完成方案设计尧程序编写尧设备安装与调试袁完成实验并撰写实验报告或形成论文遥咱责任编辑院杨扬暂渊上接第140页冤();//如果撞墙则调用游戏界面中的stop方5其他功能法更改游戏标识在//}gameOver检测是否撞尾巴for(NodepublicYardif(===;n!&&===);n=){gameOver//void中添加stop方法用于更改游戏标识设置为当超出范围就不再重画了stop(){袁显示游戏结束袁将其标志gameOver=true;true}}();在}Yard中分别保留Snake与Egg的引用袁同时在Snake中也保留4食物类Yard的引用袁以便控制当前这条蛇所在的游戏界面的游戏标识遥院在蛇类中判断蛇是否吃到食物publicRectangle袁对蛇与食物进行碰撞检测院row*_SIZE,w,h);returnnewgetRect(){Rectangle(*_SIZE,this.如果检测碰撞在一起}袁蛇在增加一个节点的同时袁让食物再次随机产生一次publicvoid院=t(-3)+3;reAppear(){=t();图员最后把食物绘制出来}到这里袁一款简单而好玩的野贪吃蛇冶游戏就完成了遥此游戏基本publicvoid实现了贪吃蛇的游戏规则袁但是功能还不完美袁追求完美的游戏爱好Colordraw(Graphics院g){者们可以在此基础上自行修改遥比如添加一个游戏暂停的功能或是在or();c=or();游戏结束后添加一个重新开始的功能袁还可以根据自己的喜好修改游戏背景袁如果感觉蛇与食物的显示不好看袁可以用图片替换蛇与食物袁LOCK_SIZE,al(*_SIZE,w,*Yard.对食物每次出现的的颜色也可设置成随机的等等遥相信经过您改良过的这款游戏将别具一番风格遥}or(c);h);咱责任编辑院周娜暂122科技视界Science&. All Rights Reserved.

本文标签: 游戏实验食物实验室