贪吃蛇小游戏需求分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

“贪吃蛇”游戏需求分析

一、需求分析:

贪吃蛇游戏是一个小型益智游戏,它可以锻炼人们的反应能力,尤其是在开发人的智力方面,很受人们的欢迎。本组该次小游戏程序设计包含二维数组、鼠标操作及图形化函数等方面知识。

具体需求概要如下:

1.初始化游戏界面为600*600大小,并于坐标为(250,250)

处显示游戏名称“贪吃蛇”,等待鼠标响应以开始游戏;

2.在程序中用格子初始蛇长及蛇的位置,用W、S、A、D控制方

向为上下左右进行游戏。游戏过程中,每吃到一次食物用For 循环使蛇移动的speed增加,分数加10,蛇长加一格;

3.蛇头咬到蛇尾or蛇头接触活动区域外围则Game over,显示

累计分数,游戏结束。

二、运行环境:

该课程设计在设计与实验过程中需要在windows XP系统/windows 2000以上系统中进行,程序设计要求在visual C++6.0平台中进行,完成代码的编写、编译、调试、测试等工作。本游戏对计算机硬件和操作系统要求极低,所以在这里只是把自己的电脑硬件参数和系统参数列下:操作系统:windows xp 软件环境:安装VC++6。

三、设计概要:

1.初始化模块:屏幕初始化,屏幕初始化用于显示游戏信息“贪吃蛇”;

2.游戏界面模块:设计绿色的边框,边框用黑色无框格子填充作为游戏活动区域;

3.游戏运行模块:运用函数控制蛇长及食物的关系,并使用键盘控制方向;

4.判断模块:头咬到尾或头接触活动区域外围,则游戏结束,显示累计分数。

四、详细设计及实现:

1.流程图(函数调用关系图)

2.预处理

#include #include #include #include #include #include

3.数据结构 IMAGE wal; MOUSEMSG m;

typedef struct {

int x[40]; int y[40];

int derection;

int food; int foodx; int foody; int size;

} snake;

snake s;

4.全局变量

int score=0,speed=300;

5.函数声明 void init(void); void wall(void); void food(void); void gameover(void); int food1(void); void snakes(void); void draw(void);

6.算法设计 main 函数: 具体实现程序功能。

●init函数:

给结构体snake 赋初值:

s.x[0]=25; 蛇体第一格初始位置的横坐标

s.y[0]=20; 蛇体第一格初始位置的纵坐标

s.x[1]=24; 蛇体第二格初始位置的横坐标

s.y[1]=20; 蛇体第二格初始位置的纵坐标

s.x[2]=23; 蛇体第三格初始位置的横坐标

s.y[2]=20; 蛇体第三格初始位置的纵坐标

s.derection=1; 蛇运动的初始方向定义为1

s.food=0; 未吃食前食物的数量为0

s.size=3; 蛇的初始长度为3个格子

初始化绘图环境为600*600像素的区域;在(250.250)处显示游戏标题“贪吃蛇”;等待操作者提供鼠标信息以开始游戏;开始游戏后,用绿色边框显示活动区域。

●food函数、food1函数:

调用函数rand 使计算机产生随机数,以获得食物的随机位置。

● draw 函数:

绘出蛇体及食物,蛇体边框绘制为亮蓝色,食物边框为红色;并在(0.0)处显示“score :__”(当前得分)。

● s

n

akes 函数:

用s.food (进食判断标志)判断蛇是否吃到食物,吃到则蛇长(限制

蛇长<40格)加一个格子,分数累加10,速度加快,并将s.food重置为0;s,direction判断蛇头格子移动的方向。

gameover函数

显示gameover提示信息,并输出玩家所得分数,结束游戏进程。

五、测试及运行结果

六、成员分组:

程序构思及模块化、Main函数:宋佳文

图形函数、Init函数、wall函数、gameover函数、:马一菲宏旭需求分析、Draw函数、Food函数、food1函数、snakes函数:阮梦宇、莉

相关文档
最新文档