毕业设计-c--贪吃蛇课程设计

上传人:人*** 文档编号:497141700 上传时间:2023-12-12 格式:DOC 页数:62 大小:409KB
返回 下载 相关 举报
毕业设计-c--贪吃蛇课程设计_第1页
第1页 / 共62页
毕业设计-c--贪吃蛇课程设计_第2页
第2页 / 共62页
毕业设计-c--贪吃蛇课程设计_第3页
第3页 / 共62页
毕业设计-c--贪吃蛇课程设计_第4页
第4页 / 共62页
毕业设计-c--贪吃蛇课程设计_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《毕业设计-c--贪吃蛇课程设计》由会员分享,可在线阅读,更多相关《毕业设计-c--贪吃蛇课程设计(62页珍藏版)》请在金锄头文库上搜索。

1、C+贪吃蛇课程设计文档班级:学生:日期:指导老师:学号:目 录一、软件需求分析11、可行性分析1(1)经济可行性1(2)法律可行性1(3)技术可行性12、用户需求概述2二、软件分析与设计41、整体设计(概要设计)42、详细设计5三、编码实现5四、测试5总结12附录:C+语言课程设计任务书1XXXXXXX一、软件需求分析1、可行性分析(1)经济可行性我的这个游戏使用的是c+ 语言,并且使用的是免费的编译器,所以不需要任何经济基础就可以进行开发,而且贪吃蛇游戏是一个适合各个年龄段的游戏,游戏简单,画面小清新。而且玩这个游戏绝对免费。(2)法律可行性本游戏使用的是dev c+ 5.5版本的编译器,免

2、费的正版编译器,并且开发系统也是正版的windows8.1操作系统,从构思到编写运行,全部是自己一个人的劳动成果,法律上不存在任何侵权行为。游戏logo是我的名字的缩写,绝对不会侵权。(3)技术可行性技术上使用windows.h这个头文件下的函数,例如游戏中的清屏system(“cls”);,游戏中的按键判断使用的是conio.h下面的getch();通过kbhit函数来判断是否有按键按下,使用COORD结构体的变量来接收坐标,HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);通过这行的代码来获取输出句柄,通过SetConsoleCursorPosit

3、ion()函数来设置刚才通过hOut获取的输出光标到刚才COORD结构体的变量接收的坐标中,我把这一块的功能封装到gotoxy(int x,int y)函数中,可以很方便的使用,做出很多绚丽的动画,还有蛇的行走,蛇的增长使用vector,通过push_back来增加蛇的长度,通过swap一个空的vector来释放内存。这样就可以做出贪吃蛇的游戏的核心功能。所以在技术上不存在任何难度。2、用户需求概述表1 数据结构(类Game_map)成员表类型定义内容描述构造函数 Game_map();初始化游戏地图成员变量int x绘制游戏地图的x坐标成员变量 int y绘制游戏地图的y坐标 表2 数据结构

4、(类 food)成员表类型定义内容描述构造函数 food()空的构造函数静态成员函数 void make()这个是最核心的函数,用来在地图上产生一个食物,并且显示最高分和当前分数。静态成员函数 static int get_fx()返回类的fx的值静态成员函数 static int get_fy()返回类的fy的值静态成员变量 static int fx存储食物的x轴坐标静态成员变量 static int fy存储食物的y轴坐标表3 数据结构(类 sbody)成员表类型定义内容描述 构造函数 sbody();初始化蛇的身体图像静态成员函数static void setv(int speed)设

5、置类的V变量静态成员函数 static int getv()返回类的V变量的值静态成员函数 static int getN()返回类的N变量的值静态成员函数 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 in

6、t V蛇的行走速度静态成员变量 static int N;蛇身体的长度表4 数据结构(类control)成员表类型定义内容描述构造函数 control()空的构造函数成员函数void order();游戏的菜单成员函数 void gameover();把数据存入文件,输出死亡界面,并且判断是否要继续游戏。成员函数 void logo();游戏的logo成员变量 int button;用来接收第一层菜单按键返回值静态成员变量 static int MAX;记录游戏的最高分静态成员函数 static int get_MAX()返回MAX的值静态成员函数 static int set_MAX(int

7、 m)修改MAX的值功能描述:键盘上的上 下 左 右 来进行上下左右移动,回车键是确认键 ,吃到食物就会变长,有4种颜色可供选择,3种难度可以选择。二、软件分析与设计主菜单1、整体设计(概要设计) 退出游戏选择颜色选择难度开始游戏 绿 红白紫 高中低 2、详细设计maingamecontrol对象调用logo函数gamecontrol对象调用order函数主菜单设置颜色设置难度双箭头可以返回开始游戏读取文件Game_map的构造函数绘制游戏地图food:make()week()gamecontrol对象调用logo函数此处省略部分内容这里是week()下面部分的详细流程图week()判断按键,

8、并进行移动Y自吃N死亡Y撞墙存储数据NY继续Sbody:addN();YN释放内存,退出游戏。吃到食物N结束游戏sbody:setN()sbody:setN()sbody:setN()三、编码实现这个是cpp文件的代码#include#include#include#include #include#include#includegotoxy.husing namespace std;class Game_mappublic: Game_map();private:int x,y; /画地图的坐标;class food /食物类 public:food();static void make()

9、;static int get_fx()return fx;static int get_fy()return fy;private:static int fx,fy;int food:fx=0;int food:fy=0; class sbodypublic:sbody() body=3;static void setv(int speed) V=speed;static int getv()return V;static int getN()return N;static int setN(int n) N=n;static void addN() N+;friend void week(

10、);friend class food;private:int x,y; /蛇身的坐标char body; /蛇身static int V;/行走速度static int N; /蛇身体长度 ;int sbody:V=0; /初始化静态变量 int sbody:N=3;vector Sbody(sbody:getN(); /创建蛇的对象 class controlpublic:control() ;void order();void gameover();static int get_MAX()return MAX;static int set_MAX(int m)MAX=m; void lo

11、go();private:int button;static int MAX; /最高分 ;int control:MAX=0;void control:logo()int x=3,y=5;while(x=45)gotoxy(x,y);cout * * * * * * * * * *endl;gotoxy(x,y+1);cout * *endl;gotoxy(x,y+2);cout * *endl;gotoxy(x,y+3);cout * *endl;gotoxy(x,y+4);cout * *endl;gotoxy(x,y+5);cout * * * * * * * * * *endl;gotoxy(x,y+6);cout * * endl;gotoxy(x,y+7);cout * * endl;gotoxy(x,y+8);cout * * endl;gotoxy(x,y+9);cout * * endl;gotoxy(x,y+10);cout * * endl;gotoxy( x,y+11);cout * *

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号