1 / 41
文档名称:

疯狂贪吃蛇java实现课程设计报告.doc

格式:doc   页数:41
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

疯狂贪吃蛇java实现课程设计报告.doc

上传人:164922429 2014/1/9 文件大小:0 KB

下载得到文件列表

疯狂贪吃蛇java实现课程设计报告.doc

文档介绍

文档介绍:安阳工学院
计算机科学与信息工程学院
JAVA程序设计课程综合项目报告
项目题目:
疯狂贪吃蛇
专业班级:
11计科信息
学生姓名:
潘强
学生学号:
201103020005
指导教师姓名:
许研
2013年12月
目录
一、系统目标 3
二、系统设计思路 3
三、系统详细设计 4
四、系统实现 8
五、系统设计总结 14
六、参考文献 15
疯狂贪吃蛇
一、系统目标
运用java技术开发出贪吃蛇游戏,这个程序是用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块。移动时必须从蛇头开始,也就是蛇尾不能改作蛇头。当游戏者按了方向键后,蛇头朝着指定的方向移动,一步移动一节身体。图形的实现是从蛇头的新位置开始画出蛇。用户可以用上下左右键控制蛇头的方向。非常简单!
可以实现如下功能:
1. 贪吃蛇游戏是大家很常见的小游戏,在生活工作之余大家可以玩它,已达到放松各种压力的目的。
2. 游戏可以进行升级,也就是增加吃食物的难度,以便使大家更有挑战性,不觉得太无趣。
3. 游戏界面大小可以任意指定,数据从文件读入。
4. 利用swing实现良好的GUI界面。
二、系统设计思路
1. 贪吃蛇是很经典的格子游戏。所谓格子游戏就是在设计游戏时的主要思想是每个设对象都是由格子组成,游戏运行界面也是由格子组成。格子思想决定了此类游戏在设计时的算法思想。
2. 方向键控制一个方块的移动的方法,一个方块的移动是靠移动其坐标位置来实现的。
3. 方向键控制是上下左右对一个方块的控制,用四个判断语句实现。
4. 蛇的移动算法思想可以看成是第一个方块移动,第二个方块移到第一个方块的位置, 第三个方块移动到第二个方块的位置⋯⋯第N个方块移动到第N-1个方块的位置。这样连续的移动就是蛇的移动了。方向控制键控制了第一个方块的移动后,后面方块跟着移动,这样也实现了方向键控制对长蛇的移动。
5. 食物的随机产生的方法食物的随机产生需要一个随机种子函数然后利用系统时间做为随机种子。
6. 蛇的身体变长的方法当然要当蛇吃到食物时才能使身体变长。因此有两个需要解决的问题:问题一:如何知道是否吃到食物?问题二:吃到食物后身体变长?解决问题一的方法是需要一个判断语句,当蛇头即构成蛇的第一个方块跟食物所在方块的坐标一样时判断吃到食物。解决问题二则要相对复杂一些,需要多个判断语句构成。
7. 游戏结束的方法,当蛇碰到边框时或者吃到自己时游戏结束。根据这个思想可以用判断语句实现。然后是游戏结束后的处理,比如显示继续玩游戏还是退出游戏,并显示所吃到的食物的个数和时间等。
三、系统详细设计
【类的设计】
1>.创建的类的描述。
1. Login类,登陆界面要求输入登陆者输入用户名和密码,分别设Go和Cancel两个登陆选项。
Login
属性: 用户名密码
Go(进入游戏) Cancel(取消)
操作: Enter() Close()
,创建游戏窗口主界面。采用图形界面设计,有窗体,菜单栏和游戏操作界面。
,此类为蛇的初始化状态及模型,所有的游戏的开始都通过此类初始化及对蛇的操作。
SnakeModel
属性: rows,cols,snakeHead,runingDiriction,locRO,snake,playBlocks
snakeFood,gameScore,AddScore
操作: LocationRO getSnakeHead(),LocationRO getSnakeTail(),
Location getRuningDiriction(),LinkedList getSnake(),
LinkedList getOthers(), getScore(),getAddScore(),
setSnakeHead(Location snakeHead),LocationRO getSnakeFood(), setSnakeFood(),moveTo(Object a,LinkedList fromlist,LinkedList tolist),
init(),SnakeModel(int rows1,int cols1),move(Location direction)
4. SnakePanel类,此类为游戏界面创建蛇的面板和蛇的移动控制实现。
SnakePanel
属性:gridsPanel, row; col; gridsPanel;direction;snake; snakeBody; otherBlocks;snakeHead; snakeFood; gameScore=0; speed