JAVA设计贪吃蛇游戏_第1页
JAVA设计贪吃蛇游戏_第2页
JAVA设计贪吃蛇游戏_第3页
JAVA设计贪吃蛇游戏_第4页
JAVA设计贪吃蛇游戏_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA设计贪吃蛇游戏1.课程设计目的《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。2.设计方案论证2.1设计思路功能要求:1)有一条蛇,在屏幕上爬,用上下左右键控制吃豆子,吃得多了,到了一定积分,就能过关。越吃越长,不能碰墙,不能咬自己的尾巴!2)需要设计的类有场地、蛇、豆类等。2.2开发环境2.2.1硬件环境机房计算机一台2.2.2软件环境操作系统:WindowsXP开发软件:ECLIPSE2.3概要设计2.3.1自定义类说明类名:snakegame作用:用来处理当蛇撞到墙或自己的身体时程序的运行继承的父类:jframe类实现的接口:keylistener2.4详细设计2.4.1程序概述本程序是一个利用Java应用软件制作的贪食蛇小游戏。在游戏过程中,用户通过点击小键盘区的方向键来控制蛇的运行方向;当蛇没有吃到食物且碰到墙壁或自己的身体时游戏结束。2.4.2程序流程图本次游戏设计的处理流程如图1所示。键盘操作:键盘操作:向上左移右移向下没有吃到食物且蛇碰到边界单击“确定”游戏结束进入游戏画面图1游戏处理流程图2.4.3总设计模块的划分根据游戏需求中游戏所要实现的功能,整个游戏分为二个模块进行具体的设计,如图2所示。贪吃蛇游戏贪吃蛇游戏游戏主界面模块游戏控制模块图2游戏总设计模块3.设计结果与分析本程序在运行后,能够正常的相应按键事件。游戏重新开始。运行结果如下图4所示:图4程序运行图当蛇没有吃到食物且碰到边界或碰撞到自己的身体时,游戏结束,此时得分为0。如果想重新开始即按ENTER或S键,运行结果如下图5所示:图5程序结束图

4.心得体会通过这次课程设计,我对这学期所学的JAVA语言程序设计有一个更深刻的了解,将所学的知识应用于实践,由于所学知识有限,为了使游戏能够实现自己预先的构想,我通过上网和去图书馆找程序,比较好的流程图及功能模块,不断阅读修改代码使程序达到预期所要实现的目标,完成课程设计后,可以感觉到自己对Java程序的又有了新的认识。在做Java设计之前也有做过其他的课程设计,大多规模很小。在数据库、各种应用软件和游戏中,我仍觉得对游戏的设计有极大的热情。因为其各个模块间的联系十分紧密,代码重复执行率高,当经过无数次的调试、修改后,能最终看到成品,有无比自豪的心情。大学期间做过图书馆管理程序等简单的数据库管理系统的课程设计,思想大致相似,变化范围有限,没有太多自己可发挥的余地。综合运用以前所学习的知识,设计一个JAVA手机游戏,并能实现以下的功能:游戏暂停、游戏重新开始、游戏的结束。总之,通过本次的课程设计,使我平时学到的理论知识得到了很好地升华,理论与实际得到一次很好的结合,为我今后参加工作打下了坚实的基础,使我受益匪浅。5.参考文献[1]辛运伟,饶一梅,马素霞。Java程序设计(第二版)北京:清华大学出版社2006[6]陆光义,宋现锋.Java游戏编程导学[M].北京:清华大学出版社.2004.6.附录packagecom.tanchishe;importjava.awt.event.KeyListener;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.util.*;importjavax.swing.JFrame;publicclassSnakeGameextendsJFrameimplementsKeyListener{ privateintstat=1,direction=0,bodylen=6,headx=7,heady=8, tailx=1,taily=8,tail,foodx,foody,food;//初始化定义变量 publicfinalintEAST=1,WEST=2,SOUTH=3,NORTH=4;//方向常量 int[][]fillblock=newint[20][20];//定义蛇身所占位置 publicSnakeGame(){//构造函数 super("贪吃蛇"); setSize(510,510); setVisible(true);//设定窗口属性 addKeyListener(this);//添加监听 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); for(inti=1;i<=7;i++)fillblock[i][8]=EAST;//初始化蛇身属性 direction=EAST;//方向初始化的设置 FoodLocate();//定位食物 while(stat==1){ fillblock[headx][heady]=direction; switch(direction){ case1:headx++;break; case2:headx--;break; case3:heady++;break; case4:heady--;break; }//蛇头的前进 if(heady>19||headx>19||tailx>19||taily>19||heady<0||headx<0||tailx<0||taily<0||fillblock[headx][heady]!=0){ stat=0; break; }//判断游戏是否结束 try{ Thread.sleep(150);} catch(InterruptedExceptione){}//延迟 fillblock[headx][heady]=direction; if(headx==foodx&&heady==foody){//吃到食物 FoodLocate(); food=2; try{ Thread.sleep(100);} catch(InterruptedExceptione){}//延迟 } if(food!=0)food--; else{tail=fillblock[tailx][taily]; fillblock[tailx][taily]=0;//蛇尾的消除 switch(tail){ case1:tailx++;break; case2:tailx--;break; case3:taily++;break; case4:taily--;break; }//蛇尾的前进 } repaint(); } if(stat==0) JOptionPane.showMessageDialog(null,"GAMEOVER","GameOver",JOptionPane.INFORMATION_MESSAGE); } publicvoidkeyPressed(KeyEvente){//按键响应 intkeyCode=e.getKeyCode(); if(stat==1)switch(keyCode){ caseKeyEvent.VK_UP:if(direction!=SOUTH)direction=NORTH;break; caseKeyEvent.VK_DOWN:if(direction!=NORTH)direction=SOUTH;break; caseKeyEvent.VK_LEFT:if(direction!=EAST)direction=WEST;break; caseKeyEvent.VK_RIGHT:if(direction!=WEST)direction=EAST;break; } } publicvoidkeyReleased(KeyEvente){}//空函数 publicvoidkeyTyped(KeyEvente){}//空函数 publicvoidFoodLocate(){//定位食物坐标 do{ Randomr=newRandom(); foodx=r.nextInt(20); foody=r.nextInt(20); }while(fillblock[foodx][foody]!=0); } publicvoidpaint(Graphicsg){//画图 super.paint(g); g.setColor(Color.BLUE); for(inti=0;i<20;i++) for(intj=0;j<20;j++) if(fillblock[i][j]!

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论