文档详情

c++迷宫游戏实验报告.doc

发布:2016-04-28约5千字共15页下载文档
文本预览下载声明
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); coutWelcomeName; Loc1(15,5); cout△▼△▼第t关▼△▼△endl; coutendl; a();//菜单初始状态 char k; int sel=1;//选中第一项 while(1){ k=getch();//移动上下方向键 switch(k){ case 72://上移 if(sel1) { sel--;
显示全部
相似文档