您好,欢迎访问三七文档
《Java程序设计》课程设计设计题目JAVA设置贪吃蛇游戏设计时间2014.6.23至2013.6.29小组成员*******************学生学号*******************所在班级11网络转本指导教师王逢州指导教师王逢州徐州工程学院课程设计报告22目录一设计背景..............................................11.1分析与设计........................................11.1.1需求分析......................................11.1.2游戏开发的方便性..............................21.1.3游戏开发的可行性..............................21.2功能需求..........................................2二设计方案论证..........................................32.1程序概述..........................................32.2程序流程图........................................32.3总设计模块的划分...................................42.4类及方法的说明.....................................6三系统编译结果分析......................................7四总结与心得体会.......................................11五参考文献.............................................12六附录实验代码.......................................13徐州工程学院课程设计报告摘要《Java程序设计》是我们第一次接触面向对象程序设计,它和我们以前学的C语言程序设计大同小异,整体上差不多却又各有各的特点。而在学习了理论课程之后,而此次课程设计也是我们的第一次全面的综合训练。Java程序设计的设计目的是加深理论教学内容的理解和掌握,使学生较系统的掌握程序设计及其在网络开发中的应用。随着Java技术越来越广泛的应用,作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用。无论采用JavaSE、JavaEE还是JavaME都需要用到GUI(图形用户界面)。“贪吃蛇”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。本文基于Java开发环境,开发了一个操作简单、界面美观、功能较齐全的“贪吃蛇”游戏。整个游戏程序分为二个功能模块,六个类模块,实现了游戏的开始、暂停、结束。通过本游戏的开发,达到学习Java技术和熟悉软件开发流程的目的。关键词Java程序设计“贪吃蛇游戏规则图形界面WindowsXP徐州工程学院课程设计报告1一设计背景Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和java平台的总称。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。运行环境:意指一种把半编译的执行码在目标机器上运行的环境。贪吃蛇游戏一款非常经典的手机游戏,因为它比较简单有趣,无论老少都比较适合。贪吃蛇的设计对每一个Java语言设计者进行语言提高和进阶都是一个很好的锻炼机会。贪吃蛇游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,如何设计和开发好这个贪吃蛇游戏,对于提高Java开发水平和系统的设计能力有极大的帮助。在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。1.1分析与设计1.1.1需求分析本系统主要是完成贪吃蛇游戏的基本操作。用户可以自己练习和娱乐。本系统需要满足以下几点要求:(1)利用方向键来改变蛇的运行方向。(2)空格键暂停或继续游戏,并在随机的地方产生食物。(3)吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。徐州工程学院课程设计报告21.1.2游戏开发的方便性游戏开发成功后,最终用户为各个年龄段的人群,用户范围相当广泛。本游戏友好的用户界面,简单易学的按钮操作以及简单通俗的游戏规则,使广大的用户不需要专门进行培训,就可以立即学会如何使用。1.1.3游戏开发的可行性贪吃蛇游戏是一种简单的大众的游戏,自从计算机实现以来,深受广大电脑玩家的喜爱,做一个简单的贪吃蛇小游戏。贪吃蛇的核心算法时如何实现移动和吃掉食物,没有碰到食物的时候,把当前运动方向上的下个节点入队,并以蛇节点的颜色绘制这个节点,然后把头指针所指的节点出队,并以游戏框架内部背景色重绘出队的节点,这样就可以达到移动的效果。而在吃到食物的时候,则只需把食物入队即可。实现贪吃蛇的基本的蛇身移动、吃到食物身体增长、和碰到墙壁或自身死亡,能够暂停和开始。本次设计主要运用java语言来完成。Java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,用Java写的应用程序不用修改就可在不同的软硬件平台上运行。由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。1.2功能需求本设计所开发的是基于Java的一个贪吃蛇游戏软件,主要实现游戏的开始、暂停、退出、等功能,分为:游戏主界面模块、游戏控制模块以二个模块。※游戏性能:本软件在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。※游戏主界面模块:主要包括游戏图形区域界面、游戏开始按钮、暂停游戏按钮。游戏的主界面应该力求美观,爽心悦目。※游戏控制模块:徐州工程学院课程设计报告3主要完成控制游戏的开始、暂停、退出等功能,这部分应该做到易懂、易操作而且准确率高,不易出错。二设计方案论证2.1程序概述本程序是一个利用Java应用软件制作的贪食蛇小游戏。在游戏过程中,用户通过点击小键盘区的方向键来控制蛇的运行方向;通过F和S键来控制蛇的移动速度,每单击一次,蛇的移动速度改变一次,改变频率为0.5。游戏运行过程中,如果想暂停,只需要按P键即可。重新开始游戏的按键为R。当蛇吃到食物且没有碰到墙壁或自己的身体时,按照积分规则得到相应的分数;当蛇没有吃到食物且碰到墙壁或自己的身体时游戏结束。本程序的另一个功能是在程序运行窗口的左上角显示,用户在游戏过程中所得的分数,不过缺点是无法保存分数。2.2程序流程图本次游戏设计的处理流程如图2-1所示:徐州工程学院课程设计报告42.3总设计模块的划分根据游戏需求中游戏所要实现的功能,整个游戏分为二个模块进行具体的设计,如图2-2所示:单击“开始游戏”按钮,游戏开始。键盘操作:向上左移右移向下没有吃到食物且蛇碰到边界单击“退出游戏”退出游戏游戏中途欲中断,稍后继续游戏单击“暂停游戏”游戏暂停进入游戏画面再次单击开始游戏,游戏恢复图2-1游戏处理流程图徐州工程学院课程设计报告5图2-2游戏总设计模块游戏控制模块的主要框架如图2-3所示:图2-3游戏控制模块框架游戏重新开始控制:点击“R”键后,系统图重新载入,即游戏重新开始。游戏暂停控制:点击“P暂停游戏”按钮,游戏暂停;再单击,游戏继续。游戏移动速度功能控制:点击“F/S”按钮,蛇的移动速度就会改变,每点击一次,速度的改变频率为0.5。游戏的得分:本游戏不是按照贪吃蛇吃到一个食物就加一分进行得分,而是赋予具体的得分规则,当蛇吃到食物且没有碰到边界或没有碰撞到自己的身体时,按照具体的规则进行得分。徐州工程学院课程设计报告62.4类及方法的说明贪吃蛇游戏各模块及程序流程有若干类实现,下面阐述各个类的设计与实现。GreedSnake类该类包含六个主要的功能方法,分别是:(1)构造函数publicGreedSnake(),主要用来设置初始化用户界面。(2)publicvoidkeyPressed()方法,主要用来对游戏的按键操作进行处理。(3)voidrepaint()主要用来绘制游戏界面(包括蛇和食物)。(4)privatevoiddrawNode()主要用来绘制某一结点(蛇身或食物)。(5)publicvoidupdateScore()方法主要用来改变计分器。(6)voidbegin()方法用来控制游戏的开始界面。SnakeModel类该类包括以下几个成员方法:(1)publicSnakeModel(GreedSnakegs,intmaxX,intmaxY):用来初始化界面。(2)publicvoidchangeDirection(intnewDirection):用来改变贪吃蛇运动方向。(3)publicbooleanmoveOn():主要用来定义贪吃蛇运动函数。(4)publicvoidrun():主要用来描述贪吃蛇运动线程。(5)privateNodecreateFood():主要用来生成食物及放置地点。(6)publicvoidspeedUp():主要用来定义加快蛇运动速度。(7)publicvoidspeedDown():主要用来放慢蛇运动速度。(8)publicvoidchangePauseState():主要用来改变游戏状态(暂停或继续)。徐州工程学院课程设计报告7三系统编译结果分析本程序在运行后,能够正常的相应按键事件。由于程序的主要部分已经集成为一个对象SnakeModel,所以利用键盘就可以实现操作。贪吃蛇前行的过程中,可以任意向其左或右方向改变方向,但按其前进方向和前进的反方向都没有反应。点击F,S键后,蛇的移动速度会根据点击的次数而改变。每点击一次,速度的改变频率为0.5。点击P键后游戏就暂停了。点击R键后系统则重新载入,即游戏重新开始。(1)在Java编译环境下编译程序如下:图1编译命令输入(2)运行结果如下图所示:徐州工程学院课程设计报告8图2游戏开始界面图3游戏运行图徐州工程学院课程设计报告9(3)当蛇没有吃到食物且碰到边界或碰撞到自己的身体时,游戏结束,此时得分为0。如果想重新开始即按R键,运行结果如下图4所示:图4程序结束图(4)当蛇吃到食物且没有碰到边界或没有碰撞到自己的身体时,此时按照积分规则得到相应的分数。运行结果如下图5所示:徐州工程学院课程设计报告10图5游戏运行图(5)程序异常处理:在蛇的运行线程过程中,当蛇撞到墙或自己的身体时,将抛出一Exception类的异常对象,然后使用try-catch去捕捉这个异常。异常的处理如下:try{Thread.sleep(timeInterval);}catch(Exceptione){break;}徐州工程学院课程设计报告11四总结与心得体会本次课程设计算是完美结束,我们也按时完成了老师交给我们的课程任务。通过这次课程设计,我和同组的组员从中学到了很多,因为这是我们三个共同完成的。经过这次课程设计,我对这学期所学的JAVA语言程序设计有一个更深刻的了解,将所学的知识应用于实践,由于所学知识有限,为了使游戏能够实现自己预先的构想,我通过上网和去图书馆找程序,比较好的流程图及功能模块,不断阅读修改代码使程序达到预期所要实现的目标,完成课程设
本文标题:JAVA课程设计
链接地址:https://www.777doc.com/doc-3804122 .html