Java 课程设计
重庆邮电大学
Java 程序设计报告书
题
目 __简单贪吃蛇游戏_
专 业 名 称 _计算机
班
级 _
学 生 学 号 __
学 生 姓 名 __
指 导 教 师 __
__
1
Java 课程设计
目
录
一、 概要设计....................................................................................................................................... 3
二、 程序整体设计说明...................................................................................................................... 4
2.1、程序运行图 ...........................................................................................................................4
2.2、程序中所用类说明............................................................................................................12
2.3、类图------------------------------------------------------------------------------------------------------------
三、部分源代码及注释......................................................................................................................13
3.1、程序界面............................................................................................错误!未定义书签。
3.2、按键监听及计算 ............................................................................... 错误!未定义书签。
四、调试及错误总结.......................................................................................................................... 38
五、设计心得.......................................................................................................................................38
六、参考文献.......................................................................................................................................39
2
Java 课程设计
一、 概要设计
本程序是针对贪吃蛇小游戏的 JAVA 程序,利用方向键来
改变蛇的运行方向,空格键暂停或继续游戏,并在随机的地
方产生食物,吃到食物就变成新的蛇体,碰到壁或自身则游
戏结束,否则正常运行。
本系统共包括 1 个 java 源文件和 7 个类文件。
1. 类之间的关系如图 1 所示:
SnakeGame
SnakeFrame
Snake
Node
SnakePanel
StatusRunnable
SnakeRunnable
2.简要算法分析:
a.利用数组列表来存放蛇身的每一个节点。
b,蛇的方向分别用四个整型常量表示:1 上,2 下,3 左,4
右。 可利用 derection % c. 是否等于 newDer % 2 来判断改
变的方向是否一原来方向相反。
d,蛇吃食物算法:根据蛇头的方向,判断蛇头坐标与食物
坐标关系,例如:蛇头向上,则蛇头与食物的 x 坐标相同,
3
Java 课程设计
蛇头 y 坐标比食物 y 坐标少 10(一个食物或一节蛇身的长
度)。
e,蛇移动时,根据当前蛇头坐标向蛇头方向前画一个节点
作为新的蛇头,并去掉蛇尾。
二、 程序整体设计说明
2.1、程序运行图
游戏开始界面:
游戏运行界面:
4
Java 课程设计
游戏结束界面:
5
Java 课程设计
2.2、系统流程图
6
Java 课程设计
开始
New Game
启动游戏线程
判断蛇头方向
Move
启动游戏状态检测
线程
记录游戏状态
Repaint
是否吃到食物
否
游戏是否结束
结束游戏状态线程
物
是
蛇身+1
Repaint()
否
是否发生碰撞
是
1.主类 SnakeGame
游戏结束
(1)主类为此程序的入口,定义了 SnakeFrame 的对象
7
Java 课程设计
frame,开始运行此程序。
(2)源代码见文件 SnakeGame.Java
2.类 SnakeFrame
(1)成员变量见表 2
表 2 主要成员变量
成 员 变 量
描述
变量类型
名称
状态标签 Private JLabel
分数标签 Private JLabel
蛇面板 private JPanel
速度标签 private JLabel
蛇类对象 private Snake
菜单条 private JMenuBar bar
游戏菜单 JMenu
帮助菜单 JMenu
速度菜单 JMenu
新菜单项 JMenuItem
statusLabel
scoreLabel
snakePanel
speedLabel
snake
gameMenu
helpMenu
speedMenu
newItem
暂 停 菜 单
项
关 于 菜 单
项
JMenuItem
pauseItem
JMenuItem
aboutItem
慢菜单项 JMenuItem
slowItem
8