文档介绍:1、 问题描述
程序开始运行时显示一个迷宫地图, 迷宫中央有一只老鼠, 迷宫右下方有一个粮仓。游戏任务是使用键盘上方向健操纵老鼠在要求时间内走到粮仓处。
基础要求:
老鼠形象能够识别, 可用键盘操纵老鼠上下左右移动;
迷宫墙足够坚固, 老鼠不能穿墙而过;
正确检测结果, 若老鼠在要求时间内走到粮仓处, 提醒成功, 并给出一条路径, 不然提醒失败。
提升要求:
添加编辑迷宫功效, 可修改目前迷宫, 修改内容: 墙变路、 路变墙;
增加闯关和计分功效;
找出走出迷宫全部路径, 以及最短路径。
。
2.需求分析
软件基础功效: 经过键盘控制光标移动实现老鼠在迷宫中行走、 全部路径和最短路径显示、 自定义地图(墙变路, 路变墙)。在老鼠闯关只能在地图显示是路地方行走, 不能穿墙, 有计时功效, 当初间结束时若没有抵达指定地点, 显示game over, 查看排行榜, 游戏结束, 若成功抵达指定位置, 进去下一关, 直到全部关结束, 程序结束; 。
输入/输出形式: 用户能够经过控制台, 依据输入提醒。
输入形式:
方向键、 空格键、 enter键
输出形式:
输出地图菜单。
输出地图
输出是否成功信息、 输出排行榜
3.概要设计
(1)主程序步骤
图1: 主程序步骤图
(3)模块调用关系:
本程序中函数包含: main函数, menu函数, menu2函数, mouse类内函数, path类内函数, change函数,
函数调用关系以下:
图2: 函数调用关系
4.具体设计
(1)实现概要设计数据类型:
Mouse类
class mouse
{
private:
int m_x;
int m_y;
time_t begin ,stop;
public:
int move_up(int map[x][y],int end);//向上移动
int move_down(int map[x][y],int end);//向下移动
int move_left(int map[x][y],int end);//左
int move_right(int map[x][y],int end);//右
void initialize(int map[x][y],int end){ m_x=S;m_y=S;map[end][end]=9;}
void print(int map[x][y],int end);//打印地图
void operate(int map[x][y],int end,char name[30]);//操作
void success();
void charts(char Name[30]);//排行榜
};
Path类
class Path
{public:
Path(){pa=1000;}
void path(int i,int j,int map[x][y],int &t,int end);
int check(int i, int j, int d, int map[x][y],int end);
void Print2(int map[x][y], int &t,int end);//打印每条路径
void allpath(int s,int e,int map[x][y],int &t,int end);
private:
int pa;
};
(2)主程序以及其它模块算法描述:
主函数具体代码:
int main()
{
menu();
file(1);
v: if(menu2(1,11)==1)//1,返回目前关卡菜单, 0, 进入下一关卡
goto v;
v2: file(2);
if(menu2(2,12)==1)
goto v2;
v3: file(3);
if(menu2(3,13)==1)
goto v3;
v4: file(4);
if(menu2(4,15)==1)
goto v4;
v5: file(5);
if(menu2(5,18)==1)
goto v5;
final();
return 0;
}
Menu2 函数具体代码
int menu2(int t,int e)
{
mouse mickey;
Path path;
int p=0;
system("cls");
Loc1(15,3);
cout<<"Welcome"<<Name;
Loc1(15,5);
c