贪吃蛇游戏报告书
青岛⼤学软件技术学院交互式游戏设计实践实训题⽬名称贪吃蛇
姓名
专业数字媒体艺术
班级 10级3班
指导教师解新峰
2014 年 1 ⽉ 14 ⽇
1
⽬录
第⼀章引⾔ (3)
1.1选题背景 (3)
1.2项⽬意义 (3)
1.3开发技术 (3)
1.3.1 Java语⾔简介 (3)
1.3.3 Eclipse开发环境 (3)
第⼆章贪吃蛇游戏概述 (5)
2.1游戏分析 (5)
2.1.1 游戏规则 (5)
2.1.2 游戏玩法 (5)
2.2算法分析 (5)
2.3架构分析 (5)
第三章贪吃蛇游戏的详细设计 (7)
3.1游戏总体结构设计 (7)
3.2 游戏运⾏图 (10)
⼩结 (13)
参考⽂献 (13)
第⼀章引⾔
1.1选题背景
贪吃蛇是家喻户晓的益智类⼩游戏,选择这个题⽬⼀是为了将⾃⼰的所学知识加以运⽤,⼆是⼀直以来贪吃蛇这个游戏就深深地吸引着我,它的制作⽅法对于以前的我⽽⾔都是很神秘的。我希望通过⾃⼰的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我的编程能⼒不是很强,但是我有信⼼,在这次学习中我将从实践和实际的项⽬中提⾼⾃⼰的编程能⼒。因此我选定了这个题⽬。
1.2项⽬意义
游戏在设计⽅⾯应该本着⽅便、实⽤及娱乐性⾼的宗旨,在对界⾯进⾏设计的过程中,应始终坚持清
晰明了,在性能⽅⾯应能够实现效率⾼,不易出错等优点。游戏主界⾯应该⼒求美观,赏⼼悦⽬。游戏控制模块应做到易懂、易操作,⽽且准确率⾼,不易出错。
1.3开发技术
1.3.1 Java语⾔简介
Java是⼀种简单易⽤的编程语⾔,它采⽤了⼀种虚拟机作为中间层来屏蔽平台差异,能够实现跨平台运⾏。Java⽀持⾯向对象编程,有封装、继承、多态的特性,它还⽀持多线程,实现多个程序流程同时执⾏,完成不同任务。
1.3.2 Java语⾔的开发⼯具包JDK
JDK(Java Development Kit)是Java语⾔的开发⼯具包,⼯具包⾥除了包含Java语⾔编译器、调试器以及演⽰程序以外,⼀般还会包含Java运⾏环境(Java Runtime Environment,JRE)。JRE是某⼀平台运⾏Java程序的软件环境,包括虚拟机(JVM)和核⼼类库等。
1.3.3 Eclipse开发环境
Eclipse是⼀个开放源代码的、基于Java的可扩展开发平台,是⽬前⾮常流⾏的跨平台的⾃由集成开发
环境(IDE)。最初主要⽤于Java语⾔开发,但是⽬前也有⼈通过插件使其作为其他编程语⾔(如C++、PHP)的开发⼯具。Eclipse本⾝也只是⼀个框架平台,但是众多插件的⽀持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发⾃⼰的IDE。
Eclipse本⾝核⼼⾮常⼩,其设计思想是“⼀切皆为插件”。其他功能都是基于插件的形式与Eclipse⽆缝结合,协同⼯作,如Eclipse的图形API、多国语⾔包等。在Eclipse
启动后,要真正⽤到某个插件时,该插件才会被动态载⼊内存,不再被使⽤的插件会在适当的时候被清除内存,所以不必担⼼某些不常⽤的插件消耗内存。插件机制使得Eclipse 具有了⽆限扩展的可能。
第⼆章拼图游戏概述
2.1游戏分析
2.1.1 游戏规则
本程序是针对贪吃蛇⼩游戏的JAVA程序,利⽤⽅向键来改变蛇的运⾏⽅向,空格键暂停或继续游戏,并在随机的地⽅产⽣⾷物,吃到⾷物就变成新的蛇体,碰到壁或⾃⾝则游戏结束,否则正常运⾏。
2.1.2 游戏玩法
玩家⽤⿏标点击“游戏”按钮,会出现⼀个含有“新游戏、暂停、继续”的下拉框,点击“新游戏并且继续”按钮即可开始进⾏游戏,利⽤⽅向键来改变蛇的运⾏⽅向,在菜单栏有“速度”的按钮,可以来选择蛇的运⾏速度。
2.2算法分析
a.利⽤数组列表来存放蛇⾝的每⼀个节点。
b.蛇的⽅向分别⽤四个整型常量表⽰:1上,2下,3左,4右。可利⽤derection %
c.是否等于newDer % 2 来判断改变的⽅向是否⼀原来⽅向相反。
d.蛇吃⾷物算法:根据蛇头的⽅向,判断蛇头坐标与⾷物坐标关系,例如:蛇头向上,则蛇头与⾷物的x坐标相同,蛇头y坐标⽐⾷物y坐标少10(⼀个⾷物或⼀节蛇⾝的长度)。
e.蛇移动时,根据当前蛇头坐标向蛇头⽅向前画⼀个节点作为新的蛇头,并去掉蛇尾。
2.3架构分析
该游戏包括七个⼤类分别是主类SnakeGame、类SnakeFrame、类Snake、类Node、类SnakePanel、类StatusRunnable、类SnakeRunnable。
系统流程图如表2.3:
表2.3
第三章贪吃蛇游戏的详细设计
3.1游戏总体结构设计
1.主类SnakeGame
(1)主类为此程序的⼊⼝,定义了SnakeFrame的对象frame,开始运⾏此程序。
2.类SnakeFrame
(1)成员变量见表2
(2)⽅法见表3
java技术介绍百度百科
3.类Snake
(1)成员变量见表4
(2)⽅法见表5
4. 类Node
(1)成员变量见表6
5.类SnakePanel
此类为画蛇的⾯板类,是实现红蓝间隔画蛇⾝算法的类。
6.类StatusRunnable
此类为线程的⼦类,实现记录状态的功能。
7.类SnakeRunnable

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。