1、高级语言程序设计(高级语言程序设计(2) 课程设计任务书课程设计任务书 题 目 贪吃蛇小游戏程序贪吃蛇小游戏程序 学生姓名 学号 专业班级 设 计 内 容 与 要 求 【问题描述】 这个程序是用一个小矩形表示蛇的一节身体,身体每长一节,增加 一个矩形块。移动时必须从蛇头开始,也就是蛇尾不能改作蛇头。当游 戏者按了方向键后,蛇头朝着指定的方向移动,一步移动一节身体。图 形的实现是从蛇头的新位置开始画出蛇。用户可以用上下左右键控制蛇 头的方向。非常简单! 【软件功能】 1. 贪吃蛇游戏是大家很常见的小游戏,在生活工作之余大家可以玩它, 已达到放松各种压力的目的。 2. 游戏可以进行升级,也就是增加
2、吃食物的难度,以便使大家更有挑 战性,不觉得太无趣。 3. 游戏界面大小可以任意指定,数据从文件读入。 4. 利用 swing 实现良好的 GUI 界面。 【基本要求】 1. 贪食蛇的前移算法主要是蛇身结点前移,后面的覆盖前面的蛇身结 点。依靠的调用编写的成员方法实现。 2. 在贪吃蛇中蛇头来控制蛇的移动方向,依靠的调用编写的成员方法 实现。 3. 要求用户界面采用图形用户界面,影响方向键的控制。 4. 重复的调用 paint()函数来实现对界面的重绘和食物的重置。 5. 源程序中要有充分的注释,报告中要有详细的流程图。 6. 运行的结果以及图形用户界面要进行屏幕拷贝,插入报告中。 幕拷贝,插
3、入报告中。 【提交成果】 1. “ 高级语言程序设计(2)课程设计任务书”和“ 高级语言程序设计 (2)课程设计报告”打印件各一份; 2. 先将上面两项内容的 word 文档,通过电子邮件交到指导教师,待许 可后,打印装袋。 起止时间 2012 年 12 月 24 日 至 2012 年 12 月 30 日 指导教师签名 李元觉 2012 年 12 月 22 日 系(教研室)主任签名 郝华宁 2012 年 12 月 22 日 学生签名 年 月 日 高级语言程序设计(高级语言程序设计(2 2) 课程设计报告) 课程设计报告 1 1、 程序设计说明书程序设计说明书 【设计题目】 贪吃蛇小游戏程序 【
4、问题描述】 这个程序是用一个小矩形表示蛇的一节身体, 身体每长一节, 增加一个矩形块。 移动时必须从蛇头开始, ,也就是蛇尾不能改作蛇头。当游戏者按了方向键后,蛇 头朝着指定的方向移动,一步移动一节身体。图形的实现是从蛇头的新位置开始 画出蛇。用户可以用上下左右键控制蛇头的方向。非常简单! 【软件功能】 1. 贪吃蛇游戏是大家很常见的小游戏,在生活工作之余大家可以玩它,已达到放 松各种压力的目的。 2. 游戏可以进行升级,也就是增加吃食物的难度,以便使大家更有挑战性,不觉 得太无趣。 3. 游戏界面大小可以任意指定,数据从文件读入。 4. 利用 swing 实现良好的 GUI 界面。 【算法思
5、想】 1. 贪吃蛇是很经典的格子游戏。所谓格子游戏就是在设计游戏时的主要思想是每 个设对象都是由格子组成,游戏运行界面也是由格子组成。格子思想决定了此类游 戏在设计时的算法思想。 2. 方向键控制一个方块的移动的方法,一个方块的移动是靠移动其坐标位置来实 现的。 3. 方向键控制是上下左右对一个方块的控制,用四个判断语句实现。 4. 蛇的移动算法思想可以看成是第一个方块移动,第二个方块移到第一个方块的 位置, 第三个方块移动到第二个方块的位置第 N 个方块移动到第 N-1 个方块的 位置。这样连续的移动就是蛇的移动了。方向控制键控制了第一个方块的移动后, 后面方块跟着移动 ,这样也实现了方向键
6、控制对长蛇的移动。 5. 食物的随机产生的方法食物的随机产生需要一个随机种子函数然后利用系统 时间做为随机种子。 6. 蛇的身体变长的方法当然要当蛇吃到食物时才能使身体变长。因此有两个需要 解决的问题:问题一:如何知道是否吃到食物?问题二:吃到食物后身体变长? 解决问题一的方法是需要一个判断语句,当蛇头即构成蛇的第一个方块跟食物所 在方块的坐标一样时判断吃到食物。解决问题二则要相对复杂一些,需要多个判 断语句构成。 7. 游戏结束的方法,当蛇碰到边框时或者吃到自己时游戏结束。根据这个思想可 以用判断语句实现 。然后是游戏结束后的处理,比如显示继续玩游戏还是退出游 戏,并显示所吃到的食物的个数和时间等。 【类的设计】 1.创建的类的描述。 1. LoginLogin 类,登陆界面要求输入登陆者输入用户名和密码,分别设 Go 和 Cancel 两个登陆选项。 LoginLogin 属性: 用户名 密码 Go(进入游戏) Cancel(取消) 操作: Enter() Close() 2. SnakeFra