系统描述 (1)1.1本设计的目的和意义 (1)1.2设计的主要内容 (1)1.3设计要达到的目标 (2)1.4设计需要实现的功能和目标 (2)1.5游戏设计环境 (2)二分析与设计 (3)2.1 游戏处理流程 (3)2.2需求分析 (4)2.3功能模块设计 (4)2.4详细设计 (8)三系统测试 (19)四心得体会 (21)五参考文献 (22)六附录 (24)基于Java的游戏“贪吃蛇”的设计和实现内容提要:“贪吃蛇”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。
本文基于Java技术和JBuilder开发环境,开发了一个操作简单、界面美观、功能较齐全的“贪吃蛇”游戏。
整个游戏程序分为二个功能模块,六个类模块,实现了游戏的开始、暂停、结束。
通过本游戏的开发,达到学习Java技术和熟悉软件开发流程的目的。
一系统描述1.1本设计的目的和意义贪吃蛇游戏一款非常经典的手机游戏,因为它比较简单有趣,无论老少都比较适合。
贪吃蛇的设计对每一个Java语言设计者进行语言提高和进阶都是一个很好的锻炼机会。
贪吃蛇游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。
在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。
因此,如何设计和开发好这个贪吃蛇游戏,对于提高Java开发水平和系统的设计能力有极大的帮助。
在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。
正是因为如此,本次毕业设计的目的在于学习Java程序设计基本技术,学习用JBuilder开发Java程序的相关技术,熟悉游戏“贪吃蛇”的需求,熟悉项目开发的完整过程。
学会怎样进行一个项目的需求分析、概要设计、详细设计等软件开发过程,熟练地掌握Java程序设计的基本技术和方法,熟练地掌握JBuilder环境的使用方法,培养起初步的项目分析能力和程序设计能力。
1.2设计的主要内容贪吃蛇游戏设计与实现,主要分为以下二个模块:游戏主界面模块游戏控制模块。
在此只实现游戏的游戏主界面模块、游戏控制模块。
并且只是实现开始、暂停、退出等功能。
1.3设计要达到的目标本次设计要达到的目标分别从以下模块进行阐述:“游戏主界面模块:游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界面、游戏的速度选择更新界面、游戏分数的显示更新界面、新生方块的预览、游戏开始按钮、暂停游戏按钮、退出游戏按钮以及游戏排行榜按钮。
从很大程度上决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,爽心悦目。
4游戏控制模块:这个模块是游戏的中心环节,主要完成控制游戏的开始、暂停、退出等功能。
为了能够给玩家一个很好的游戏环境,这部分应该做到易懂、易操作。
1.4设计实现功能和目标本设计所开发的是基于Java的一个贪吃蛇游戏软件,主要实现游戏的开始、暂停、退出、等功能,分为:游戏主界面模块、游戏控制模块以二个模块。
4性能:本软件在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。
4游戏主界面模块:主要包括游戏图形区域界面、游戏开始按钮、暂停游戏按钮、关闭按钮。
游戏的主界面应该力求美观,爽心悦目。
“游戏控制模块:主要完成控制游戏的开始、暂停、退出等功能,这部分应该做到易懂、易操作而且准确率高,不易出错。
1.5游戏设计环境本次课程设计所涉及和实现的是用Java编程语言和JBuilder开发工具开发的贪吃蛇游戏。
本次设计的系统环境及工具如下:运行环境:wi ndows xp编程语言:Java使用工具:JBuilder 2005二分析与设计2.1游戏处理流程本次游戏设计的处理流程如图1所示图1游戏处理流程图2.2需求分析2.2.1 用户的特点游戏开发成功后,最终用户为各个年龄段的人群,用户范围相当广泛。
本游戏友好的用户界面,简单易学的按钮操作以及简单通俗的游戏规则,使广大的用户不需要专门进行培训,就可以立即学会如何使用。
2.2.2 功能需求222.1 游戏主界面模块需求游戏界面主框架主要包括游戏图形区域界面、游戏开始按钮、游戏暂停按钮、关闭按钮。
2.2.2.2 游戏图形区域界面的需求游戏画布区主要应该包括游戏画布中贪吃蛇随机出现的位置,贪吃蛇重新出现的位置,事物随机出现的位置。
2.2.3 属性需求在可使用性方面,要求各个功能实现简单,操作方便,系统处理正确;整个系统恢复性能好,连接速度快,以确保系统可使用性好。
另外,还要求系统的可扩展性、可维护性、可移植性良好。
2.3功能模块设计软件开发过程中的功能模块设计,主要解决实现该游戏需求的程序模块设计问题。
包括如何把该游戏划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及模块结构的设计等。
2.3.1 游戏功能本系统主要完成以下几方面的功能:1. 游戏控制功能——包括游戏的开始、暂停、退出2. 界面布局3. 其他辅助功能232 总设计模块的划分根据游戏需求中游戏所要实现的功能,整个游戏分为二个模块进行具体的设计, 如图2所示。
图2游戏总设计模块233 游戏主界面模块游戏界面主框架主要包括游戏图形区域界面、游戏的开始按钮、暂停按钮、游戏的退出按钮。
游戏界面主框架的主要结构图如图3所示。
图3游戏主界面框架2.3.4 游戏控制模块游戏控制模块主要通过主界面上的按钮来控制游戏的开始、游戏的暂停、游戏的退出这三个功能以及控制游戏分数变化。
在这个模块中,需要给各个按钮或文本框加入代码,来对上述的功能加以进一步的实现。
游戏控制模块的主要框架如图4所示。
图4游戏控制模块框架-游戏开始控制:单击“游戏开始”按钮,游戏画布即有移动的贪吃蛇出现,游戏正式开始。
“游戏暂停控制:单击“暂停游戏”按钮,游戏暂停;再单击,游戏继续。
j游戏退出控制:单击“退出游戏”按钮,退出该游戏。
235 类模块设计235.1 类模块之间关系通过对功能要求的分析,将贪吃蛇游戏功能划分为6个类模块,他们的关系如图5所示。
2.3.6各类模块设计概要图5贪吃蛇类之间的关系凸' SnakeApp类该类包含main方法,为应用程序的主类。
该类用来创建游戏的用户界面,整个程序从该类的main方法开始执行。
“ Sn akeFrame类用来设计游戏的用户界面。
“ Sn akePa nel 类设置游戏运行状态,设置蛇头颜色,背景颜色,随机块颜色,移动以及分数更新,实现上下左右移动的方法接口。
已' SnakeModeI类设置初始化蛇的形状和运行方向,设置随机块的位置,判断游戏是否出界,以及出界后的处理,设置方向的更新。
上Array In dex 类用来得到坐标,设置坐标以及判断运行方向相同或相反。
丄ArraylndexReadOnly 类用来得到坐标,以及判断运行方向相同或相反。
理Listener 类用来控制游戏的速度237 游戏图形界面的图形显示更新功能游戏的图形区域界面主要是一个图形显示更新区域,主要包括随机食物的显示更新、进行中和游戏结束时的分数更新和游戏图形区域界面的清除。
游戏图形区域又很多小方格组成,主要是一个表格,根据相应格子的设置标志来显示相应的图形图片,这样就实现了贪吃蛇的实时显示。
238 贪吃蛇蛇身的设计在贪吃蛇游戏中,具体的蛇身图形的设计是比较重要的一个方面。
因为贪吃蛇游戏中主要的游戏动作就是控制蛇身的移动和转向,以便于覆盖随机块。
由于主要的游戏动作都集中在蛇身上,因此蛇身设计就显得格外重要。
239 内部接口内部模块之间的接口是通过内部函数完成,在程序设计中用设计软件本身所带的调用函数实现。
2.4详细设计2.4.1程序主结构本次所设计贪吃蛇游戏的程序主结构如图6所示。
图6贪吃蛇程序主结构242 类模块程序流程图SnakeApp 类图7 SnakeApp类程序流程图SnakeFrame 类图8 SnakeFrame类程序流程图第10页SnakePanel 类图9 SnakePanel类程序流程图第11页SnakeModel 类图10 Sn akeModel类程序流程图第12页Arrayl ndexReadO nly 类图11 ArraylndexReadOnly类程序流程图Array In dex 类图12 Arraylndex类程序流程图liste ner 类图13 liste ner 类程序流程图243 类模块具体设计Sn akeApp.java 程序SnakeApp 类中包含main方法,为主类。
在主类中创建了Snake Frame窗口类的一个实例。
设计如下:j成员变量表表1 SnakeApp.java程序成员变量表表2 Sn akeApp.java程序成员方法Sn akeFrame.java 程序这个程序中包含二个类,下面分小节分别叙述。
①SnakekFrame类程序Sn akeFrame类用来设计游戏的用户界面。
在该界面上有用户玩游戏的功能菜单、游戏界面及游戏的状态栏。
设计如下:丄成员变量表表3 SnakeFrame类程序成员变量表表4 SnakeFrame类程序成员方法表②liste ner 类程序具体设计如下:丄成员变量表表5 listener 类程序成员变量表丄成员方法表6 listener 类程序成员方法Array In dex.java 程序“成员变量表7 ArrayIndex类程序成员变量表表8 Arraylndex类程序成员方法Array In dexRead Onl y.java 程序」成员变量表表9 ArraylndexReadOnly 类程序成员变量表表10 ArraylndexReadOnly类程序成员方法Sn akePa nel.java 程序+成员变量表表11 SnakePanel类程序成员变量表」成员方法表12 SnakePanel类程序成员方法Sn akeModel.java 程序-成员变量表表13 SnakeModel类程序成员变量表表14 SnakeModel类程序成员方法第19页三系统测试打开贪吃蛇游戏后,出现如下图14所示界面图14点击主菜单的【文件】出现如图15所示界面。
选择【退出】则可以退出游戏图15再点击【帮助】就会出现如图16所示界面图16点击主菜单的【设置】会出如图17所示界面,点击等级的类别修改难度系数图17点击【风格】如图18所示可去掉网格图18点击【新游戏】按钮开始游戏,如图19所示并有暂停和继续功能图19四心得体会通过这次课程设计,我对上学期所学的JAVA语言程序设计有一个更深刻的了解,将所学的知识应用于实践,由于所学知识有限,为了使游戏能够能够实现自己预先的构想,我们这组通过上网找代码和去图书馆借书找程序,比较画好的流程图及功能模块,不断阅读修改代码使程序达到预期所要实现的目标,完成课程设计后,可以感觉到自己对Java程序的又有了新的认识。