1 / 19
文档名称:

毕业设计思路范文.docx

格式:docx   大小:22KB   页数:19页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

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

分享

预览

毕业设计思路范文.docx

上传人:我是开始 2020/11/19 文件大小:22 KB

下载得到文件列表

毕业设计思路范文.docx

相关文档

文档介绍

文档介绍:毕业设计思路
Java编写贪吃蛇游戏思路
需求分析:
游戏以经典贪吃蛇默认规则设计需要蛇能够按照给定的方向
每隔一段时间白动移动;方向键“ f ”、 “ $ ”、
“、“r”能够控制蛇移动的方向,蛇每吃到一个食 物后身体长度增加一格,原有食物消失,再随机生成一个 不再石头上的新食物;石头即为地图,蛇吃到石头后游戏 结束。
为了使游戏更加具备娱乐性和挑战性,增设关卡,随着关卡
级别的升高,蛇移动速度加快,蛇吃到食物的难度加大, 吃到一定数量的食物即可过关进入下一个关卡;为蛇吃到 食物后添加声音效果,增设背景音乐,能够控制背景音乐 的开关;
为了区别与经典模式的不同,游戏增加新的规则模式,新的
模式规则中,初始化的蛇长度一定,蛇吃到食物后,食物 随机产生一个新的食物,原来的食物经过蛇的消化后变为 石头固定在原处不能移动。
设计思路:
首先考虑所需要的总体框架
贪吃蛇游戏主题应为蛇,需要创立蛇这个类命名为 Snake,
还要有食物类命名为 Food,石头类命名为 Stone,显示面 板类命名为DisplayPanel,逻辑处理类命名为 Logic以及主
函数类命名为MainOfGreedySnake。
搭建类与类之间的关系
蛇吃食物,食物在被蛇吃到后随机产生新的食物,食物不
能在石头上生成,关系复杂,我们能够将这些关系在逻辑
处理类Logic中搭建,这样即降低了上面三个类之间的耦合
性,又方便以后对辅助功能的添加。
蛇,食物,石头需要在显示面板中显示出来,而三者又在
逻辑处理这个类Logic中做逻辑关系运算,我们可创立白己
的显示面板类 DisplayPanel,用逻辑处理类 Logic创立对象
作为参数传递给显示面板,使得蛇,食物,石头以及显示
面板直接的关系更加简单。
添加简单的测试功能
首先需要创立主函数,主函数中创立逻辑处理类 Logic的实
例对象,创立白定义的显示面板对象 DisplayPanel,将逻辑
处理类Logic的实例对象作为参数传递给显示面板
DisplayPanel的实例对象中,显示面板需要寄托在 Frame框
架上,这就需要在主函数中创立一个 JFrame对象,然后将
白定义的显示面板添加到 JFrame对象上。
接着是在每个类中添加一个测试用的功能函数,简单的打
印一条输出语句,在蛇类 Snake中,创立一个功能函数打
印“蛇类被加载”,食物类,石头类,逻辑处理类,显示
面板类中添加同样的功能,在逻辑处理类中定义蛇,食
物,石头对象,创立构造函数参数传入蛇,食物,石头类
型的对象;白定义的显示面板继承 JPanel类,定义逻辑处
理类的对象,创立构造函数传入逻辑处理类的对象。
经过调用类中的功能函数来测试,确保她们之间已经建立
联系。
类中填充功能及参数
首先分析蛇:
小的蛇
/

:
图 2-
我们把显示面板划分为格子,每个单位的蛇身占一个
格子,食物,石头同样,经过抽取定义一个格子类命名为
Square;蛇的身体由多个格子组成,需要一个链表集合存
储,定义一个 LinkedList类型的集合命名为 snakeBody,存
储类型为格子类型 Square的对象;蛇有一个长度,定义
一个int型的变量Length存储长度,定义一个 int型的
direction变量控制蛇移动的方向;定义一个 boolean类型 的变量iseatfood ,来标识蛇是否吃到食物;定义一个 boolean类型的变量iseatstone来标识蛇是否吃到石头;
蛇的功能有移动功能,创立功能函数 move (),关 于蛇移动,我们能够让存储蛇身体的集合 snakeBody添加
一个蛇头,去掉一个尾巴来实现,蛇头添加的位置又应该 由蛇移动的方向控制,因此在添加蛇头之前应该判断蛇头 的方向,如果蛇向上移动, direction应为1,我们让改变
之前的snakeBody调用addFirst ()功能添加蛇头,里面 的参数应为改变之前的蛇头的纵坐标减一个格子,向下, 向左,向右原理相同。
蛇已更改具有改变方向的功能,以便于后面控制蛇移 动的时候改变方向,定义函数 changeDirection (),传入
int型的方向值。
蛇还应该有判断是否吃到食物的功能,定义功能函数
isEatFood (),判断蛇是否吃到食物只需判断蛇头的坐标
是否和食物的坐标相同,这里有一个小问题,