您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 贪吃蛇Java课程设计
目录1.设计任务与要求.................................................................................................................11.1设计任务..................................................................................................................11.2具体要求..................................................................................................................12.软件主要模块流程图.........................................................................................................23.总体方案与说明.................................................................................................................33.1总体方案..................................................................................................................33.2系统模块..................................................................................................................33.2.1游戏界面设计......................................................................................................33.2.2贪吃蛇蛇身及运动设置..............................................................................53.2.3游戏控制设置..............................................................................................34.程序设计.............................................................................................................................44.1GamePanel类............................................................................................................44.2.Snake类..................................................................................................................45.分析问题与解决方案.........................................................................................................55.1问题处理.................................................................................................................56小结与体会..........................................................................................................................6参考文献(资料).................................................................................................................7程序代码:.............................................................................................................................81基于Java的游戏“贪吃蛇”的设计和实现内容提要:“贪吃蛇”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。本文基于Java技术开发环境,开发了一个操作简单、界面美观、功能较齐全的“贪吃蛇”游戏。整个游戏程序分六个类模块,实现了游戏的开始、暂停、结束。通过本游戏的开发,达到学习Java技术和熟悉软件开发流程的目的。1.设计任务与要求1.1设计任务设计一个贪吃蛇的游戏功能要求:能够显示贪吃蛇的运动,能通过键盘控制贪吃蛇的运行,能够处理蛇在运行中各种情况,以及其它的辅助功能。设计任务要完成设计、编码、测试等过程,给出设计思路、主要代码。源代码以及可运行的贪吃蛇游戏。1.2具体要求具体内容如下:1)设计任务与要求2)总体方案与说明3)面向对象的设计(主要类的设计)4)源程序清单与注释5)软件主要模块流程图6)问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、解决方法及改进设想);7)小结与体会22.软件主要模块流程图软件的主要模块流程如下图5-1所示单击“enter”按钮,游戏开始。键盘操作:右移左移上移sdasdasd下移没有吃到食物且蛇碰到边界游戏结束按F1重新开始游戏中途欲中断,稍后继续游戏按enter游戏暂停进入游戏画面再次开始按enter按钮,游戏恢复图5—1游戏处理流程图33.总体方案与说明3.1总体方案我们设计的贪吃蛇主要利用键盘控制蛇的前进移动方向,是否吃到食物,是否撞墙以及是否暂停、开始游戏等。当吃到食物的时候,蛇就自动长大一格,在游戏中可进行暂停和开始操作。中途若是撞到墙或是撞到自己,同样也结束。3.2系统模块根据总体方案,我把贪吃蛇游戏分为:游戏界面设置(即绘图)、贪吃蛇蛇身及运动与碰撞问题(食物、蛇身、石头)设置三大模块来设计。3.2.1游戏界面设计游戏界面设置包括:游戏区,蛇的长度信息,获得分数的信息以及历史最高分的信息。游戏界面使用简单和直观的布局设计,游戏区放置在界面的主题位置上,在游戏区右上方放置蛇的长度数据及获得的分数数据,具体设计效果如图2-1所示。图2-1游戏界面附加代码:4importjava.awt.*;importjava.io.*;importjava.util.*;importjavax.swing.JFrame;publicclassGameFrameextendsJFrame{publicGamePanelpanel=newGamePanel(this);publicSnakexiaoqing=newSnake(this);publicControlct=newControl(this);publicFoodfood=newFood(this);publicLinkedListRocksrocks=newLinkedListRocks();publicGameFrame(){}publicvoidintiRocks(){}publicvoidinti(){}privateSnakesnake;Propertiesdbconfig=newProperties();staticFileInputStreamfile;publicStringmsg()throwsIOException{}privateclassSnakeDriverimplementsRunnable{@Overridepublicvoidrun(){}publicstaticvoidmain(String[]args){GameFramegf=newGameFrame();}}53.2.2贪吃蛇蛇身及运动设置贪吃蛇的蛇身设置是整个游戏设计的关键。它的基本思路是:移动的时候去掉蛇尾,将其添加在蛇头(去尾加头),吃到食物时将之前去掉的尾部在重新加上,完成蛇头吃食物的处理操作,显示蛇头。具体效果如图2-2所示。而蛇运动的四个方向,则通过按键来控制。蛇吃到一个食物,就加分。每次食物出现的位置不能在蛇身上也不能在屏幕外面,如果蛇在运动的过程中撞到自己或者撞墙,则游戏结束,具体效果如图2-3所示。图2-2游戏运行中的效果2图2-3就是蛇撞到墙之后,提示游戏结束。附加代码:蛇的移动publicvoidmove(){//蛇的移动方法if(gf.panel.isPause())return;//判断游戏是否暂停if(!life)return;//判断游戏是否GAMEOVERtail=bady.getLast();//记录下它尾节点bady.removeLast();//删除它的尾节点intx=bady.getFirst().x;//获取它头结点的Xinty=bady.getFirst().y;//获取它头节点的Yif(key+KeyBuffer!=0){}switch(key){//就算其头结点坐标}//防止蛇跑出屏幕3if(x0){x=Constant.COMPANY_WIDTH-1;}if(xConstant.COMPANY_WIDTH-1){x=0;}if(y0){y=Constant.COMPANY_HEIGHT-1;}if(yConstant.COMPANY_HEIGHT-1){y=0;}bady.addFirst(newPoint(x,y));//在其头部加上新的X,Y坐标}蛇吃食物,撞墙,撞身体publicbooleaneatFood(Foodfood){}publicbooleaneatRock(Rocksrock){}publicbooleaneatBody(){}3.2.3游戏控制设置游戏控制设置就是控制游戏的暂停与开始及重新游戏。W、S、A、D或上、下、左、右键控制蛇的上、下、左、右移动,设置enter按键来暂停或开始进行中的游戏,设置F1来重新开始游戏。44.程序设计贪吃蛇游戏各模块及程序流程有若干类实现,下面阐述各个类的设计与实现。4.1GamePanel类该类包含六个主要的功能方法,分别是:(1)构造函数publicpaintComponrnt(),主要用来设置用户控制面。(2)publicvoidkeyPressed()方法,主要用来对游戏的按键操作进行处理。(3)voiddrawFood()drawRocks()主要用来绘制游戏界面食物和石头。(4)publicvoiddrawfenshu()方法主要用来改变积分器。(5)publicvoiddrawPause()方法用来实现暂停(6)voiddrawGameOver()方法用来控制游戏的开始界面。4.2.Snake类该类包含多个功能方法,分别是:(1)构造函数publicSnake(),该方法主要用来初始化游戏界蛇的位置及大小且给其一个初始方向。用一个LinkedList,用来保存蛇的每一节;在利用drawMe()方法遍历LinkedLi
本文标题:贪吃蛇Java课程设计
链接地址:https://www.777doc.com/doc-1904294 .html