2011-2012学年 第3学期
《C语言程序设计》 课程设计阅读报告
题目: 贪吃蛇游戏 专业: 计算机/数字媒体技术 班级: 2011级 : 指导教师: × × × 完成时间:
工 计算机科学与技术学科 2012 年 8 月 1日
工 计算机科学与技术学科 《C语言程序设计》课程设计阅读报告
贪吃蛇游戏
1 设计目的与要求
此游戏通过建立规定的活动范围,使研究的对象——蛇在有限的空间内寻找食 物, 并以蛇在活动过程中是否吃到食物和是否碰到墙壁和自身为基准,决定是否 应该提高等级(即提高速度)来提高难度,进行游戏。通过对键的识别,玩家可 以控制蛇的移动方向。这样,此游戏不仅可以给玩者带来乐趣,更出于此的是玩 家通过按键对蛇的控制,可以锻炼玩家的反应速度以及应变能力。
2 设计过程(步骤)或程序代码
2.1 系统简介
2.1.1游戏界面设计 1)开始界面 用图象文本输出函数outtextxy()输出“Begin by anykey”作为开始界面。 2)游戏界面 运用图形函数中画矩形函数rectangle (x1,y1,x2,y2) 设计一个左上角坐为 (50, 40),右下角坐标为(610,460)的围墙,并以black作为背景颜色,浅色作为 围墙边框的颜色,红色矩形代表蛇,绿色矩形代表食物。 3)游戏中断界面 当蛇在运动过程中因碰到墙壁或碰到自身第一次跳出游戏时,将弹出此界 面。通过图形文本输出 continue or not (y/n) 和文本输入 y/n 判断是否继续 游戏。 4)结束界面 运用图形文本输出“GAME OVER”作为结束界面。 2.1.2 函数调用 此游戏程序中调用了GameBegin()、GameNext()、GamePlay()、GameOver()、 PrScore()和图形启动函数Init()、开始画面函数 DrawK()、结束画面函数 Close() 等编写的函数以及图形函数库里的清屏函数Cleardevice(). 2.1.3游戏规则 1) 进入开始界面后按任何键进入游戏。
1
工 计算机科学与技术学科 《C语言程序设计》课程设计阅读报告
2) 左右上下四键控制蛇的移动,开始score=0,grade=1。默认速度为 gamespeed为500000。蛇的身色t=1; 3) 食物在围墙内随机出现。蛇在运动过程中吃到食物则 snake.node+=1,score+=10.当分数达到score=n*100(n=0,1,2,……)时,等级 grade+=1.此时速度gamespeed-=1000.t+=1; 4) 蛇在运动过程中碰到墙壁或自身时,游戏跳出。若是第一次跳出游戏则 弹出游戏中断界面决定玩家是否继续游戏。 5) 玩家最多两次机会进行游戏,机会过后游戏将跳出。此时游戏将根据你 的分数对你进行评判。 2.1.4 开发环境 贪食蛇游戏运用的开发语言为C语言,开发环境为Turbo C 2.0 。 2.1.5运行环境 贪食蛇运行环境为Windows 2000/XP.
2.2总体设计
贪食蛇游戏是运用顺序结构化设计思路(游戏开始——>游戏——>游戏中 断——>游戏结束)合理调用函数实现的具有一定趣味的小游戏. 2.2.1 模块分化 (一) 结构定义和设计 表示食物和蛇的矩形块都设计为10× 10个像素单位, 食物的基本数据域为它 所出现的位置,用x和y坐标表示,则矩形块用函数rectangle(x,y,x+10,y+10)或 rectangle(x,y,x+l0,y-10)可以画出。由于每次只出现一个食物,而食物被吃掉后, 才出现下一个食物,所以设定yes表示是否要出现食物的变量。蛇的一节身体为 一个矩形块,这样表示每个矩形块只需起点坐标x和y。身体是不断增长的,所 以用数组存放每一节的坐标,最大设定为N=200,node表示当前节数。另外还 需要保存蛇移动方向的变量direction和表示生命的变量life,一旦life为1,则 蛇死,跳出游戏。 #define N 200
struct Food
{
int x; /*食物的横坐标*/
int y; /*食物的纵坐标*/
int yes; /*判断是否要出现食物的变量*/
}food; /*食物的结构体*/
struct Snake
{ int x[N]; /*蛇的横坐标*/
int y[N]; /*蛇的纵坐标*/
2
工 计算机科学与技术学科 《C语言程序设计》课程设计阅读报告
int node; /*蛇的节数*/ i