贪吃蛇小游戏需求研究分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.流程图(函数调用关系图)
Main 函数
Init 函数
初始化绘图环境
Food 函数
随机产生初始食物的位置
Draw 函数
画出蛇体状态及食物位置
Snakes 函数
蛇体及速度变化 运动方向的选择
Draw 函数
画出蛇体状态及食物位置
Gameover 函数
游戏终止,显示分数
Food 函数 判断有无进食
Food1函数
判断是否进食
Wall 函数
画出活动区域及边框
第一次调用,画初始状态
Food1函数
从此处Draw 以后开始至结尾,函数均在一个For 循环中调用。
判断
游戏
判断
进入下一次循
环
#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; 赋值0,1作为s.food的标志,以在for循环中判断上一个食物是否已被吃到;foodx和foody作为食物格子的横纵坐标。
作为蛇身体和头部格子的坐标
用于判断蛇身体格子的移动方向
蛇身体格子的个数,即蛇
4.全局变量
为分数赋初值0,为速度赋初值300 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 初始化绘图环境
food 随机产生食物位置,判断是否进食,增加蛇长
draw 画出蛇体状态及食物位置
snakes 蛇体及速度变化,运动方向的选择
gameover 判断游戏是否终止,显示分数
●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)处显示游戏标题“贪吃蛇”;等待操作者提供鼠标信息以开始游戏;开始游戏后,用绿色边框显示活动区域。
调用的函数函数功能
initgraph 初始化绘图环境
outtextxy 在当前位置输出字符串“贪吃蛇”GetMouseMsg 获取一个鼠标信息;若无,则一直等待
cleardevice 清屏
wall 画出活动区域及边框
●food函数、food1函数: