贪吃蛇小游戏需求分析.docx
- 文档编号:3610877
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:11
- 大小:79.12KB
贪吃蛇小游戏需求分析.docx
《贪吃蛇小游戏需求分析.docx》由会员分享,可在线阅读,更多相关《贪吃蛇小游戏需求分析.docx(11页珍藏版)》请在冰豆网上搜索。
贪吃蛇小游戏需求分析
“贪吃蛇”游戏需求分析
一、需求分析:
贪吃蛇游戏是一个小型益智游戏,它可以锻炼人们的反应能力,尤其是在开发人的智力方面,很受人们的欢迎。
本组该次小游戏程序设计包含二维数组、鼠标操作及图形化函数等方面知识。
具体需求概要如下:
1.初始化游戏界面为600*600大小,并于坐标为(250,250)处显示游戏名称“贪吃蛇”,等待鼠标响应以开始游戏;
2。
在程序中用格子初始蛇长及蛇的位置,用W、S、A、D控制方向为上下左右进行游戏。
游戏过程中,每吃到一次食物用For循环使蛇移动的speed增加,分数加10,蛇长加一格;
3.蛇头咬到蛇尾or蛇头接触活动区域外围则Game over,显示累计分数,游戏结束。
二、运行环境:
该课程设计在设计与实验过程中需要在windowsXP系统/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循环中调用。
判断游戏若未结束
判断游戏
若已结束
结束
进入下一次循环
2.预处理
#include h> #include #include〈graphics。 h〉 #include #include<conio.h〉 #include<time。 h> 3.数据结构 IMAGEwal; MOUSEMSG m; typedefstruct { 作为蛇身体和头部格子的坐标 intx[40]; inty[40];ﻩ 用于判断蛇身体格子的移动方向 intderection; 赋值0,1作为s.food的标志,以在for循环中判断上一个食物是否已被吃到;foodx和foody作为食物格子的横纵坐标。 int food; int foodx; intfoody; 蛇身体格子的个数,即蛇长 intsize; }snake; snakes; 4。 全局变量 为分数赋初值0,为速度赋初值300 intscore=0,speed=300; 5.函数声明 voidinit(void); voidwall(void); void food(void); voidgameover(void); intfood1(void); voidsnakes(void); voiddraw(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函数: 调用函数rand使计算机产生随机数,以获得食物的随机位置。 调用的函数 函数功能 rand 获得一个随机数 food1 判断蛇是否吃到食物,若吃到则return1, 回到food函数中的do—while循环,再次随机生成食物位置;否则return0,food调用结束。 ●draw函数: 绘出蛇体及食物,蛇体边框绘制为亮蓝色,食物边框为红色;并在(0。 0)处显示“score: __”(当前得分). 调用的函数 函数功能 setcolor 设置蛇体为蓝色&设置食物为红色 rectangle 根据数组s。 x[40]、s。 y[40]及s。 size画出蛇体; 根据s。 foodx、s.foody[及s。 size画出食物位置 outtextxy 在当前位置输出字符串“score: ”显示得分 ●snakes函数: 用s.food(进食判断标志)判断蛇是否吃到食物,吃到则蛇长(限制蛇长〈40格)加一个格子,分数累加10,速度加快,并将s.food重置为0;s,direction判断蛇头格子移动的方向。 使用的结构体 Typedefstruct()snake;snakes. snakes函数 的功能 If语句: 判断蛇是否吃到食物(蛇长〈40格),吃到则蛇长加一格,分数累加10,速度加快,并将s。 food(进食判断标志)重置为0 Switch语句: 根据case1、case 2、case3、case4判断s.direction(WSAD=上下左右) ●gameover函数 显示gameover提示信息,并输出玩家所得分数,结束游戏进程。 调用的函数 函数功能 setcolor 设置字符串“score: _”为白色 outtextxy 在当前位置输出字符串“score: _"“gameover"显示得分 cleardevice 清屏 GetMouseMsg 获取一个鼠标信息: 若无,则一直等待;若有,则exit,退出游戏。 五、测试及运行结果 六、成员分组: 程序构思及模块化、Main函数: 宋佳文 图形函数、Init函数、wall函数、gameover函数、: 马一菲张宏旭 需求分析、Draw函数、Food函数、food1函数、snakes函数: 阮梦宇、张莉
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 贪吃 小游戏 需求 分析