您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 贪吃蛇JAVA设计报告
1第一章绪论1.1开发的背景随着科技的发展,现在手机的功能已不仅仅是简单的打接电话、收发短信了。更多的手机用户希望在工作、学习之余通过方便灵巧可随身携带的仪器休闲娱乐。因此,为了迎合众多用户的需求并适应现在手机的规模,我们开发出一套适合各阶层人士的具有很强的娱乐性和交互性的贪吃蛇小游戏。贪吃蛇,之所以取这样的名字,去用意还是很明显的.贪吃蛇其实并不贪,它是人不断向前追求的象征.就像现代的人只有不断努力向前才能得到自己想要的。而食物也是随机出现的,就像现在社会存在的机会,而我们只有找好自己的目标才能成功。虽然现在市面上存在着各种各样的游戏版本,可是贪吃蛇其市场还是相当大的。因为它的特殊在于它能吸引人更深入,爱不释手.随着游戏速度不断加快,其刺激性也更强。可以说该游戏的优势在于它的简单易行,不论是手机,还是小游戏机,都能很快顺利的运行。对于在外忙碌的人,不可能花费大量时间在娱乐上,大型游戏是行不通的。这样的小游戏刚好迎合了他们的需求。1.2开发的目的在如今社会,人们的工作学习压力逐渐增大,生活节奏逐渐加快,大多数人没有足够的时间去休闲娱乐,放松自己。这款小型的手机游戏,可以让我们随时随地都能享受游戏,。让我们从繁重的日常生活中解脱出来。游戏的主界面应该力求美观,爽心悦目,以提高玩家对游戏的兴趣。游戏的控制模块应该做到易懂、易操作,以给玩家一个很好的游戏环境。1.3开发的意义通过这个游戏可以使玩贪吃蛇的人感到心情轻松,愉悦。使心情得以舒畅,让工作的压力可以得到缓解。给大家一个愉悦的游戏环境。1.4开发工具简介SunMicrosystems公司在推出Java语言的同时,推出了一套开发工具JDK。Sun提供的基于字符模式的Java开发工具包JDK:Java开发工具(JDK)是许多Java专家最初使用的开发环境。Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。Java源程序编写借助于记事本,Editpuls,UltraEdit等第三方编辑工具。所有的Java文件编辑、编译、调试、解释运行都是通过使用字符命令来执行操作。JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心JavaAPI是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。JDK是整个Java的核心,包2括了Java运行环境(JavaRuntimeEnvirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。JDK里面是java类库和java的语言规范,它提供的是无论你用何种开发软件写java程序都必须用到的类库和java语言规范.没有jdk,你的java程序根本就不能用。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(JavaVirtualMachine)运行效率要比SunJDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。但不管怎么说,我们还是需要先把SunJDK掌握好。第二章需求分析2.1需求分析本游戏主要是完成贪吃蛇游戏的基本操作。本游戏需要满足以下几点要求:(1)利用方向键来改变蛇的运行方向。(2)在随机的地方产生食物。(3)吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。2.2可行性分析贪吃蛇游戏是一种简单的大众的游戏,自从计算机实现以来,深受广大电脑玩家的喜爱,做一个简单的贪吃蛇小游戏。贪吃蛇的核心算法是如何实现移动和吃掉食物,在没有碰到食物的时候,把当前运动方向上的下个节点入队,然后把头指针所指的节点出队,这样就可以达到移动的效果。而在吃到食物的时候,则只需把食物入队即可。实现贪吃蛇的基本的蛇身移动、吃到食物身体增长、和碰到墙壁或自身死亡,能够停止和运行。本次设计主要运用java语言来完成。Java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,用Java写的应用程序不用修改就可在不同的软硬件平台上运行。3第三章系统概要设计3.1设计目标本软件是针对贪吃蛇小游戏的JAVA程序,利用方向键来改变蛇的运行方向,空格键暂停或继续游戏,并在随机的地方产生食物,吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。3.2系统功能模块本系统共包括1个java源文件和7个类文件。1.类之间的关系如图1所示。图1类之间的关系2.java源文件及其功能如表所示。表1java源文件及其功能序号文件名主要功能1贪吃蛇该文件为程序入口,含有main方法。2run实现菜单控制运行等总体要求,实现方向键控制蛇的方向,空格键控制游戏暂停或继续,还有分数等。贪吃蛇JFrameRunCheckIsdeadUpgrowthReformPaint4第四章详细设计与实现4.1程序设计1.主类贪吃蛇(1)主类为此程序的入口,定义了贪吃蛇的对象frame,开始运行此程序。(2)源代码见详细代码。2.类SnakeFrame(1)成员变量见表2表2主要成员变量成员变量描述变量类型名称状态标签PrivateJLabelzhuantaiLabel分数标签PrivateJLabelfenshuLabel蛇面板privateJPanelsnakePanel蛇类对象privateSnake贪吃蛇菜单条privateJMenuBarbar游戏菜单JMenuyouxiMenu3check该文件实现蛇的结构和具体运动,如判断食物是否和怎样被吃掉及判断后的动作。4reform该文件实现组成蛇身的单位-食物。5paint该文件实现画板功能,用红蓝间隔画蛇身。6isdead该文件为记录状态的线程。7upgrowth该文件为蛇运动以及记录分数的线程。5帮助菜单JMenubangzhuMenu新菜单项JMenuItemyouxiItem关于菜单项JMenuItemguanyuItem简单单项JMenuItemjiandanItem普通菜单项JMenuItemputongItem困难菜单项JMenuItemKunnanItem开始菜单项JMenuItemkaishiItem帮助菜单项JMenuItembangzhuItem(2)方法见表3表3主要方法方法名功能SnakePanel()创建蛇的面板addKeyListener监视器setBounds()设置尺寸JLabel()设置标签JMenu()创建菜单JMenuItem构造菜单项3.类贪吃蛇(1)成员变量见表4表4主要成员变量成员变量描述变量类型名称是否运动booleanisRun蛇体ArrayListNodebody食物Reformfood方向intderection分数intFenshu状态intZhuangtai简单publicstaticfinalintJiandan6普通publicstaticfinalintPutong困难publicstaticfinalintKuannan运动中publicstaticfinalintRUNNING左publicstaticfinalintLEFT上publicstaticfinalintUP右publicstaticfinalintRIGHT下publicstaticfinalintDOWN(2)方法见表5表5主要方法方法名功能check()判断食物是否被蛇吃掉,如果食物在蛇运行方向的正前方,并且与蛇头接触,则被吃掉Upgrowth()在随机的地方产生食物Reform蛇得到食物4.类reform(1)成员变量见表6表6主要成员变量成员变量描述变量类型名称食物块宽publicstaticfinalintW食物块高publicstaticfinalintH横坐标intx纵坐标inty(2)源代码见详细代码。5.类Paint此类为画蛇的面板类,是粉色蛇身算法的类。源代码见详细代码。6.类Isdead此类为线程的子类,实现记录状态的功能。源代码见详细代码。7.类Run此类为线程的子类,实现蛇运动以及记录分数的功能。7源代码见详细代码。4.2各功能界面截图1、贪吃蛇游戏的基本运行界面(1)生成初始界面:图1初始界面(2)游戏菜单栏:8图2游戏菜单栏(3)困难程度菜单栏:图3困难程度菜单栏92、程序开始运行界面(1)鼠标点击游戏按钮,开始游戏图4游戏初始界面(3)按方向键改变蛇的运行方向,并且碰壁后停止游戏:10图5游戏运行界面4.3详细代码代码:importjava.awt.Color;importjava.awt.Graphics;importjava.awt.Toolkit;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.InputEvent;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;importjavax.swing.JCheckBoxMenuItem;importjavax.swing.JFrame;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JOptionPane;importjavax.swing.KeyStroke;publicclass贪吃蛇extendsJFrameimplementsActionListener,KeyListener,Runnable{privatestaticfinallongserialVersionUID=1L;privateStringtemp=null;privateJMenuBarmenuBar;publicJMenuyouXiMenu,nanDuMenu,fenShuMenu,guanYuMenu;privateJMenuItemkaiShiYouXi,exitItem,tanchisheItem,fenShuItem;privateJCheckBoxMenuItemcJianDan,cPuTong,cKunNan;privateintlength=6;privateToolkittoolkit;privateinti,x,y,z,objectX,objectY,object=0,growth=0,time;//bojectX,Yprivateintm[]=newint[50];privateintn[]=newint[50];privatestaticThreadshe=null;privateintlife=0;privateintfoods=0;11privateintfenshu=0;publicvoidrun(){time=800;for(i=0;i=length-1;i++){m[i]=90-i*10;n[i]=60;}x=m[0];y=n[0];z=4;while(she!=null){check();try{Thread.sleep(time);}catch(Exceptionee){System.out.println(z+);}}}public贪吃蛇(){setVisible(true);menuBar=newJMenuBar();toolkit=getToolkit();youXiMenu=newJMenu(游戏);kaiShiYouXi=newJMenuItem(开始游戏);exitItem=newJMenuItem(退出游戏);nanDuMenu=newJMenu(困难程度);cJianDan=newJCheckBoxMenuItem(简单);cP
本文标题:贪吃蛇JAVA设计报告
链接地址:https://www.777doc.com/doc-6102345 .html