1、 C+贪吃蛇课程设计文 档 班级: 学生: 日期: 指导老师: 学号: 目 录 一、软件需求分析 1 1、可行性分析 1 (1)经济可行性 . 1 (2)法律可行性 . 1 (3)技术可行性 . 1 2、用户需求概述 2 二、软件分析与设计 4 1、整体设计(概要设计) 4 2、详细设计 . 5 三、编码实现. 7 四、测试 50 总结. 57 附录:C+语言课程设计任务书 . 1 XXXXXXX 1 一、软件需求分析一、软件需求分析 1、可行性分析、可行性分析 (1)经济可行性)经济可行性 我的这个游戏使用的是 c+ 语言,并且使用的是免费的编译器, 所以不需要任何经济基础就可以进行开发,
2、而且贪吃蛇游戏是一个适 合各个年龄段的游戏,游戏简单,画面小清新。而且玩这个游戏绝对 免费。 (2)法律可行性)法律可行性 本游戏使用的是 dev c+ 5.5 版本的编译器,免费的正版编译器, 并且开发系统也是正版的 windows8.1 操作系统, 从构思到编写运行, 全部是自己一个人的劳动成果,法律上不存在任何侵权行为。游戏 logo 是我的名字的缩写,绝对不会侵权。 (3)技术可行性)技术可行性 技术上使用 windows.h 这个头文件下的函数,例如游戏中的清屏 system(“cls”);,游戏中的按键判断使用的是 conio.h下面的 getch();通过 kbhit 函数来判断
3、是否有按键按下,使用 COORD 结构体的变量来接 XXXXXXX 2 收坐标, HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);通过这 行的代码来获取输出句柄,通过 SetConsoleCursorPosition()函数来 设置刚才通过 hOut 获取的输出光标到刚才 COORD 结构体的变量接 收的坐标中,我把这一块的功能封装到 gotoxy(int x,int y)函数中,可 以很方便的使用,做出很多绚丽的动画,还有蛇的行走,蛇的增长使 用vector, , 通过push_back来增加蛇的长度, 通过swap一个空的vector 来释放内存
4、。这样就可以做出贪吃蛇的游戏的核心功能。 所以在技术 上不存在任何难度。 2、用户需求概述、用户需求概述 表 1 数据结构(类 Game_map)成员表 类型定义 内容描述 构造函数 Game_map(); 初始化游戏地图 成员变量 int x 绘制游戏地图的 x 坐标 成员变量 int y 绘制游戏地图的 y 坐标 表 2 数据结构(类 food)成员表 类型定义 内容描述 构造函数 food() 空的构造函数 静态成员函数 void make() 这个是最核心的函数,用来在 地图上产生一个食物,并且显 示最高分和当前分数。 静态成员函数 static int get_fx() 返回类的 f
5、x 的值 静态成员函数 static int get_fy() 返回类的 fy 的值 静态成员变量 static int fx 存储食物的 x 轴坐标 静态成员变量 static int fy 存储食物的 y 轴坐标 XXXXXXX 3 表 3 数据结构(类 sbody)成员表 类型定义 内容描述 构造函数 sbody(); 初始化蛇的身体图像 静态成员函数 static void setv(int speed) 设置类的 V 变量 静态成员函数 static int getv() 返回类的 V 变量的值 静态成员函数 static int getN() 返回类的 N 变量的值 静态成员函数
6、static int setN 设置类的 N 变量的值 静态成员函数 static void addN() 使类的 N 变量自加 友元类 friend class food; 主要在 food 的 make 函数中判 断蛇的食物是否出现在蛇的 身体上 友元函数 friend void week(); 控制蛇的移动,判断死亡,增 长身体 成员变量 int x 蛇身的 x 轴坐标 成员变量 int y 蛇身的 y 轴坐标 成员变量 char body; 蛇身的图像 静态成员变量 static int V 蛇的行走速度 静态成员变量 static int N; 蛇身体的长度 表 4 数据结构(类 control)成员表 类型定义 内容描述 构造函数 control() 空的构造函数 成员函数 void order(); 游戏的菜单 成员函数 void gameover(); 把数据存入文件,输出死亡界 面,并且判断是否要继续游 戏。 成员函数 void logo(); 游戏的 logo 成员变量 in