欢迎来到天天文库
浏览记录
ID:48650948
大小:469.87 KB
页数:10页
时间:2020-01-30
《贪吃蛇JAVA源代码完整版.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、本文已或作者授权,转载请注明出处游戏贪吃蛇的JAVA源代码一.文档说明a)本代码主要功能为实现贪吃蛇游戏,GUI界面做到尽量简洁和原游戏相仿。目前版本包含计分,统计最高分,长度自动缩短计时功能。b)本代码受计算机系大神指点,经许可后发布如下,向Java_online网致敬c)运行时请把.java文件放入defaultpackage即可运行。二.运行截图a)文件位置b)进入游戏10ALLRIGHTSRESERVED本文已或作者授权,转载请注明出处a)游戏进行中二.JAVA代码10ALLRIGHTSRESERVED本文已或作者授
2、权,转载请注明出处importjava.awt.*;importjava.awt.event.*;importstaticjava.lang.String.format;importjava.util.*;importjava.util.List;importjavax.swing.*;publicclassSnakeextendsJPanelimplementsRunnable{enumDir{up(0,-1),right(1,0),down(0,1),left(-1,0);Dir(intx,inty){this.x=x;
3、this.y=y;}finalintx,y;}staticfinalRandomrand=newRandom();staticfinalintWALL=-1;staticfinalintMAX_ENERGY=1500;volatilebooleangameOver=true;ThreadgameThread;intscore,hiScore;intnRows=44;intnCols=64;Dirdir;intenergy;int[][]grid;Listsnake,treats;FontsmallFont;pu
4、blicSnake(){setPreferredSize(newDimension(640,440));setBackground(Color.white);setFont(newFont("SansSerif",Font.BOLD,48));setFocusable(true);smallFont=getFont().deriveFont(Font.BOLD,18);initGrid();10ALLRIGHTSRESERVED本文已或作者授权,转载请注明出处addMouseListener(newMouseAdapter(
5、){@OverridepublicvoidmousePressed(MouseEvente){if(gameOver){startNewGame();repaint();}}});addKeyListener(newKeyAdapter(){@OverridepublicvoidkeyPressed(KeyEvente){switch(e.getKeyCode()){caseKeyEvent.VK_UP:if(dir!=Dir.down)dir=Dir.up;break;caseKeyEvent.VK_LEFT:if(dir
6、!=Dir.right)dir=Dir.left;break;caseKeyEvent.VK_RIGHT:if(dir!=Dir.left)dir=Dir.right;break;caseKeyEvent.VK_DOWN:if(dir!=Dir.up)dir=Dir.down;break;}repaint();}});}voidstartNewGame(){gameOver=false;10ALLRIGHTSRESERVED本文已或作者授权,转载请注明出处stop();initGrid();treats=newLinkedL
7、ist<>();dir=Dir.left;energy=MAX_ENERGY;if(score>hiScore)hiScore=score;score=0;snake=newArrayList<>();for(intx=0;x<7;x++)snake.add(newPoint(nCols/2+x,nRows/2));doaddTreat();while(treats.isEmpty());(gameThread=newThread(this)).start();}voidstop(){if(gameThread!=null)
8、{Threadtmp=gameThread;gameThread=null;tmp.interrupt();}}voidinitGrid(){grid=newint[nRows][nCols];for(intr=0;r
此文档下载收益归作者所有