当前位置:
文档之家› 疯狂贪吃蛇JAVA实现课程设计报告
疯狂贪吃蛇JAVA实现课程设计报告
3
5. 食物的随机产生的方法食物的随机产生需要一个随机种子函数然后利用 系统时间做为随机种子。
6. 蛇的身体变长的方法当然要当蛇吃到食物时才能使身体变长。因此有两 个需要解决的问题:问题一:如何知道是否吃到食物?问题二:吃到食物后身体 变长?解决问题一的方法是需要一个判断语句,当蛇头即构成蛇的第一个方块跟 食物所在方块的坐标一样时判断吃到食物。解决问题二则要相对复杂一些,需要 多个判断语句构成。
是否结束
否
是
暂停
否
是否开始
是
是否碰到蛇身\墙
否 是否吃到食物
提示游戏结
是 蛇身加长,分数增加
结束
四、系统实现
【测试数据】 1. 游戏登陆测试,用户名:杨文,密码:123456. 2. 进入主界面。 3. 测试文件菜单;游戏开始,贪吃蛇窗墙则游戏结束;退出提示。 4. 测试设置菜单。 5. 测试窗口大小菜单。 6. 测试作者信息菜单。 7. 测试帮助菜单。
Location
属性: x
y
操作:Location(int x,int y) ,getX(),getY(),setX(int x),
setY(int y) ,equalOrRev(Location e),equals(Location e) ,
reverse(Location e)
2>.类之间的调用关系。
通过这次课程设计,我对java又有了更深刻的认识。也有了更深一步的喜爱, 决定一定要努力学好java,并能更好的应用于以后的工作中。
这次贪吃蛇的设计,我做的不是很完美,也没想象中的那么好,但也获得了 许多宝贵的经验:
1) 在设计程序之前,务必要对自己所要设计的题目和内容有一个系统的,大 概的了解,知道所设计的题目和内容包含哪些资源。
附件:
详细代码
1. Login 类 package SnakeGameDemo; import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.GridLayout; import java.awt.Image; impoeFrame
SnakePanel 【用户界面】
1. 登陆界面
SnakeModel
LocationRO
Location
2. 游戏主界面
5
【程序技巧】 1. 为游戏设置权限,为游戏设置登陆界面。 2. 游戏界面采用图形界面美观大方易操作。 3. 功能齐全,可以选择开始,暂停,继续可以随时操控游戏状态,方便 易操作,人性化设计。 4. 设置菜单功能齐全,可以让界面显示网格和取消显示网格,还可以根 据自己的实际能力情况选择游戏的等级。 5. 窗口大小菜单可以根据自己的需要和爱好调整窗体的大小,可以选择 大中小三种窗体。适合不同的需要。 6. 本程序设置了作者信息菜单可以查询程序的制作人的信息等。 7. 对于新手用户,我为他们设置了操作指南菜单,帮助他们方便快捷的 学会游戏的操作步骤。
2
疯狂贪吃蛇
一、系统目标
运用 java 技术开发出贪吃蛇游戏,这个程序是用一个小矩形表示蛇的一节 身体,身体每长一节,增加一个矩形块。移动时必须从蛇头开始,也就是蛇尾不 能改作蛇头。当游戏者按了方向键后,蛇头朝着指定的方向移动,一步移动一节 身体。图形的实现是从蛇头的新位置开始画出蛇。用户可以用上下左右键控制蛇 头的方向。非常简单!
操作:SnakePanel(SnakeFrame parent,int row,int col),newGame(long speed)
stopGame(),returnGame(),getGameScore(),updateTextFiled(String str)
updateColors(),run(),keyPressed(KeyEvent event)
15
import java.awt.Panel; import java.awt.TextField; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; //登陆界面 public class Login extends JFrame {
二、系统设计思路
1. 贪吃蛇是很经典的格子游戏。所谓格子游戏就是在设计游戏时的主要思 想是每个设对象都是由格子组成,游戏运行界面也是由格子组成。格子思想决定 了此类游戏在设计时的算法思想。
2. 方向键控制一个方块的移动的方法,一个方块的移动是靠移动其坐标位 置来实现的。
3. 方向键控制是上下左右对一个方块的控制,用四个判断语句实现。 4. 蛇的移动算法思想可以看成是第一个方块移动,第二个方块移到第一个 方块的位置, 第三个方块移动到第二个方块的位置⋯ ⋯ 第 N 个方块移动到第 N-1 个方块的位置。这样连续的移动就是蛇的移动了。方向控制键控制了第一个方块 的移动后,后面方块跟着移动 ,这样也实现了方向键控制对长蛇的移动。
【输出结果】 1.登陆测试
2.进入主界面
8
3.测试文件菜单 文件主界面
1>.菜单/开始
9
2>.贪吃蛇窗墙则游戏结束
3>.退出提示。文件/退出。
10
4.测试设置菜单.
5.测试窗口大小菜单。
11
6. 测试作者信息菜单。
12
7.测试帮助菜单。
13
五、系统设计总结
通过一学期的学习,我自己认为自己学java没学好,而在整个新技术专题中我觉 得贪吃蛇的游戏应该是最简单的。
SnakeModel 属性: rows,cols,snakeHead,runingDiriction,locRO,snake,playBlocks
snakeFood,gameScore,AddScore 操作: LocationRO getSnakeHead(),LocationRO getSnakeTail(),
可以实现如下功能: 1. 贪吃蛇游戏是大家很常见的小游戏,在生活工作之余大家可以玩它,已 达到放松各种压力的目的。 2. 游戏可以进行升级,也就是增加吃食物的难度,以便使大家更有挑战性, 不觉得太无趣。 3. 游戏界面大小可以任意指定,数据从文件读入。 4. 利用 swing 实现良好的 GUI 界面。
4
SnakePanel
属性:gridsPanel, row; col; gridsPanel;direction;snake; snakeBody;
otherBlocks;snakeHead; snakeFood; gameScore=0; speed;
AddScore; t;
isEnd; notExit;
两个登陆选项。
Login
属性: 用户名
密码
Go(进入游戏)
Cancel(取消)
操作: Enter()
Close()
2.SnakeFrame 类,创建游戏窗口主界面。采用图形界面设计,有窗体,菜单栏 和游戏操作界面。 3.SnakeModel 类,此类为蛇的初始化状态及模型,所有的游戏的开始都通过此 类初始化及对蛇的操作。
7. 游戏结束的方法,当蛇碰到边框时或者吃到自己时游戏结束。根据这个 思想可以用判断语句实现 。然后是游戏结束后的处理,比如显示继续玩游戏还是 退出游戏,并显示所吃到的食物的个数和时间等。
三、系统详细设计
【类的设计】
1>.创建的类的描述。
1. Login 类,登陆界面要求输入登陆者输入用户名和密码,分别设 Go 和 Cancel
14
2) 设计程序采用什么编程语言并不是非常重要,关键是要有一个清晰的思 路和一个完整的软件流程图,所有要先把设计原理与思路搞清楚,再把流程图画 出来,这样设计起来就简单多了。
3) 在设计程序时,不能妄想一次就将整个程序设计好,“反复修改,不断改 进”是程序设计的必经之路,发现错误也是取得成绩及成绩的一种必经之路。
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 类,此类为游戏界面创建蛇的面板和蛇的移动控制实现。
4) 要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而 应该让人一看就能明白自己的思路,这样也为资料的保存和交流提供了方便。
在以后的学习和工作中,我希望我能把这些经验应用起来。为以后的工作顺 利进行,也让自己获得一定的能力,能够拥有一份好的工作。
六、参考文献
[1] 魏伟译.JBuilder 开发人员指南[M].北京:机械工业出版社,2001.1. [2] 胡雷, 叶曙光, 徐饪.JBuilder 9.0 入门与提高[M].北京:机械工业出 版社,2004. [3] 田勇,孙新.Jbuilder 开发人员指南[M].北京: 机械工业出版社,2001. [4] 李尊朝,苏军.Java 语言程序设计(第二版)[M].北京:中国铁道出版社 2009. [5] 黄晓东.Java 课程设计案例精编(第二版)[M].北京:中国水利水电出版 社,2008. [6] 陆 光 义 , 宋 现 锋 .Java 游 戏 编 程 导 学 [M]. 北 京 : 清 华 大 学 出 版 社.2004.