贪吃蛇小游戏需求分析_第1页
贪吃蛇小游戏需求分析_第2页
贪吃蛇小游戏需求分析_第3页
贪吃蛇小游戏需求分析_第4页
贪吃蛇小游戏需求分析_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、“贪吃蛇”游戏需求分析一、需求分析:贪吃蛇游戏是一个小型益智游戏,它可以锻炼人们的反应能力, 尤其是在开发人的智力方面,很受人们的欢迎。本组该次小游戏程序 设计包含二维数组、鼠标操作及图形化函数等方面知识。具体需求概要如下:1 .初始化游戏界面为 600*600大小,并于坐标为(250, 250) 处显示游戏名称“贪吃蛇”,等待鼠标响应以开始游戏;2 .在程序中用格子初始蛇长及蛇的位置,用 W、S、A、D控制 方向为上下左右进行游戏。游戏过程中,每吃到一次食物用For 循环使蛇移动的speed增力口,分数加10,蛇长加一格;3 .蛇头咬到蛇尾or蛇头接触活动区域外围则 Game over,显示

2、 累计分数,游戏结束。二、运行环境:该课程设计在设计与实验过程中需要在windows XP系统 /windows 2000以上系统中进行,程序设计要求在 visual C+6.0平 台中进行,完成代码的编写、编译、调试、测试等工作。本游戏对计 算机硬件和操作系统要求极低,所以在这里只是把自己的电脑硬件参 数和系统参数列下:操作系统:windows xp软件环境:安装VC+6三、设计概要:1 .初始化模块:屏幕初始化,屏幕初始化用于显示游戏信息“贪吃蛇”;2 .游戏界面模块:设计绿色的边框,边框内用黑色无框格子填充作 为游戏活动区域;3 .游戏运行模块:运用函数控制蛇长及食物的关系,并使用键盘控

3、 制方向;4 .判断模块:头咬到尾或头接触活动区域外围, 则游戏结束,显示 累计分数。四、详细设计及实现:1 .流程图(函数调用关系图)Main函数2判断游戏 若已结束判断是否进食进入下一次循环结束rSnakes函数蛇体及速度变化运动方向的选择Draw函数画出蛇体状态及食物位置Gameover 函数游戏终止,显示分数从此处Draw以后开始至结尾,函数均在一 个For循环中调用。Food函数判断有无进食Foodl函数2 .预处理#include<stdio.h>#include<stdlib.h>#include<graphics.h>#include<

4、dos.h>#include<conio.h>#include<time.h>3 .数据结构IMAGE wal;MOUSEMSG m;typedef structint x40;int y40;int derectionfint food;int foodx;int foody;int size;作为蛇身体和头部格子的坐标用于判断蛇身体格子的移动方向赋值0,1作为s.food的标志,以在for循环中判断上 一个食物是否已被吃到;foodx和foody作为食物格 子的横纵坐标。蛇身体格子的个数,即蛇 snake;snake s;4 .全局变量int score=0,

5、speed=30Or为分数赋初值0,为速度赋初值3005 .函数声明void init(void);void wall(void);void food(void);void gameover(void);int foodl(void);void snakes(void);void draw(void);6 .算法设计main函数:具体实现程序功能调用的函数函数功能init初始化绘图环境food随机产生食物位置,判断是否进食,增加蛇长draw画出蛇体状态及食物位置snakes蛇体及速度变化,运动方向的选择gameover判断游戏是否终止,显示分数init函数:给结构体snake赋初值:s.x0=

6、25;蛇体第一格初始位置的横坐标s.y0=20;蛇体第一格初始位置的纵坐标s.x1=24;蛇体第二格初始位置的横坐标s.y1=20;蛇体第二格初始位置的纵坐标s.x2=23;蛇体第三格初始位置的横坐标s.y2=20;蛇体第三格初始位置的纵坐标s.derection=1;蛇运动的初始方向定义为 1s.food=0;未吃食前食物的数量为 0s.size=3;蛇的初始长度为3个格子初始化绘图环境为600*600像素的区域;在(250.250)处显示游戏 标题“贪吃蛇”;等待操作者提供鼠标信息以开始游戏; 开始游戏后, 用绿色边框显示活动区域。调用的函数函数功能initgraph初始化绘图环境outt

7、extxy在当前位置输出字符串“贪吃蛇”GetMouseMsg获取个鼠标信息;若无,则直等待cleardevice清屏wall画出活动区域及边框food函数、foodl函数:调用函数rand使计算机产生随机数,以获得食物的随机位置调用的函数函数功能rand获得一个随机数foodl判断蛇是否吃到食物,若吃到则 return 1, 回到food函数中的do-while循环,再次随机生成食物位置;否则return 0, food调用结束。draw函数:绘出蛇体及食物,蛇体边框绘制为亮蓝色,食物边框为红色;并在(0.0)处显示“score: _"(当前得分)调用的函数函数功能setcolor

8、设置蛇体为蓝色&设置食物为红色rectangle根据数组s.x40、s.y40吸s.size画出蛇体;根据s.foodx s.foody及s.size画出食物位置outtextxy在当前位置输出字符串“ score:”显不得分snakes 函数:用s.food (进食判断标志)判断蛇是否吃到食物,吃到则蛇长(限制蛇长40格)加一个格子,分数累加 10,速度加快,并将s.food重置 为0; s,direction判断蛇头格子移动的方向。使用的结构体Typedef struct () snake; snake s。snakes函数的功能If语句:判断蛇是否吃到食物(蛇长40格),吃到则蛇

9、长加一格,分数累加10,速度加快,并将s.food (进食判断标志)重置为0Switch 语句:根据 easel case 2 case3 case4 判断s.direction (WSAD=上下左右)gameover 函数显示gameover提示信息,并输出玩家所得分数,结束游戏进程调用的函数函数功能setcolor设置字符串“ score: ”为白色outtextxy在当 前位置输出子符串 score _ gameover显示得分cleardevice清屏GetMouseMsg获取个鼠标信息:若无,则直等待;若有,贝U exit,退出游戏。五、测试及运行结果snake贪食蛇ED亘区 snake score:0口叵区小 =H:C语言实验购贪吃蛇小游戏需求.r k Microsoft Visual.Mieroso亢 Visu社

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论