贪吃蛇 游戏
结队作业 结队人 郑丁鹏(负责 (二)流程图和(四)游戏测试 )
我负责 (二)游戏需求分析 与(三)游戏代码
贪吃蛇游戏程序设计
一、基本内容描述
运用java技术开发出贪吃蛇游戏,这个程序是用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块。移动时必须从蛇头开始,也就是蛇尾不能改作蛇头。当游戏者按了方向键后,蛇头朝着指定的方向移动,一步移动一节身体。图形的实现是从蛇头的新位置开始画出蛇。用户可以用上下左右键控制蛇头的方向,用空格键暂停或继续,非常简单!
可以实现如下功能:
- 贪吃蛇游戏是大家很常见的小游戏,在生活工作之余大家可以玩它,已达到放松各种压力的目的。
- 游戏可以进行升级,也就是增加吃食物的难度,以便使大家更有挑战性,不觉得太无趣。
- 游戏界面大小可以任意指定,数据从文件读入。
- 利用swing实现良好的GUI界面。
一、需求分析
GitHub地址: https://github.com/ChristianLiWei/tanchishe/blob/master/tanchishe
(一)系统功能要求:
- 利用方向键来改变蛇的运行方向。
- 空格键暂停或继续游戏,并在随机的地方产生食物。
- 吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。
(二)系统设计思路:
- 贪吃蛇是很经典的格子游戏。所谓格子游戏就是在设计游戏时的主要思想是每个设对象都是由格子组成,游戏运行界面也是由格子组成。格子思想决定了此类游戏在设计时的算法思想。
- 方向键控制一个方块的移动的方法,一个方块的移动是靠移动其坐标位置来实现的。
- 方向键控制是上下左右对一个方块的控制,用四个判断语句实现。
- 蛇的移动算法思想可以看成是第一个方块移动,第二个方块移到第一个方块的位置, 第三个方块移动到第二个方块的位置⋯⋯第N个方块移动到第N-1个方块的位置。这样连续的移动就是蛇的移动了。方向控制键控制了第一个方块的移动后,后面方块跟着移动 ,这样也实现了方向键控制对长蛇的移动。
- 食物的随机产生的方法食物的随机产生需要一个随机种子函数然后利用系统时间做为随机种子。
- 蛇的身体变长的方法当然要当蛇吃到食物时才能使身体变长。因此有两个需要解决的问题:问题一:如何知道是否吃到食物?问题二:吃到食物后身体变长?解决问题一的方法是需要一个判断语句,当蛇头即构成蛇的第一个方块跟食物所在方块的坐标一样时判断吃到食物。解决问题二则要相对复杂一些,需要多个判断语句构成。
- 游戏结束的方法,当蛇碰到边框时或者吃到自己时游戏结束。根据这个思想可以用判断语句实现 。然后是游戏结束后的处理,比如显示继续玩游戏还是退出游戏,并显示所吃到的食物的个数和时间等。
三 系统代码
五、体会
我们知道贪吃蛇的游戏是简单的,我们设置的游戏,还有好多地方值得加强。比如:游戏结束无显示,可以加一个游戏结束标志并显示分数等。
通过这次实践,我们对java又有了更深刻的认识。也有了更深一步的喜爱,决定一定要努力学好java,并能更好的应用于以后的工作中。
这次贪吃蛇的设计,我们做的不是很完美,也没想象中的那么好,但也获得了许多宝贵的经验:
1) 在设计程序之前,务必要对自己所要设计的题目和内容有一个系统的,大概的了解,知道所设计的题目和内容包含哪些资源。
2) 设计程序采用什么编程语言并不是非常重要,关键是要有一个清晰的思路和一个完整的软件流程图,所有要先把设计原理与思路搞清楚,再把流程图画出来,这样设计起来就简单多了。
3) 在设计程序时,不能妄想一次就将整个程序设计好,“反复修改,不断改进”是程序设计的必经之路,发现错误也是取得成绩及成绩的一种必经之路。
4) 要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而
应该让人一看就能明白自己的思路,这样也为资料的保存和交流提供了方便。
在以后的学习和工作中,我们希望能把这些经验应用起来。为以后的工作顺利进行,也让自己获得一定的能力,能够拥有一份好的工作。