文档介绍:迷宫游戏目录一、题目的名称及要求.................................................................................. 2 二、完成的功能及特色.................................................................................. 2 (1) 程序功能的详细说明...................................................................... 2 (2) 自己的特色...................................................................................... 2 (3) 运行界面截图.................................................................................. 3 三、设计实现.................................................................................................. 3 (1) 类之间的关系图.............................................................................. 3 (2) 主要函数的说明.............................................................................. 4 (3) 程序的源代码清单.......................................................................... 4 一、题目的名称及要求题目名称: 迷宫游戏要求: 初始时建立一个迷宫, 要求迷宫中至少有 8 个房间, 其中一个是入口, 一个是出口, 房间的数量及连接自己定。每个房间有名称、还要记录他周围的邻居, 初始时在入口房间,房间有东、南、西、北四个方向(E,S,W,N) ,如果某方向有房间就可以往这个方向走,在每一步走之前要提示用户目前在哪个房间, 可以往哪些方向走, 让用户根据提示走下一步。如果走了八步还没有走到出口, 则结束程序并显示走过的路径; 如果在八步之内走到了出口, 则胜利并显示成功的路径。二、完成的功能及特色(1) 程序功能的详细说明程序运行后, 要求用户输出 e,w,s,n 中的一个字母, 表示要向东西南北中的一个方向走。如果输入的方向有房间, 则会显示已到达该房间, 并出现提示, 要求用户继续选择方向; 如果输入的方向没有房间,则会提示目前在原房间、没有移动。程序一开始,在迷宫的入口(即房间 Room1 ) ,若在八步之内到达迷宫的出口(即房间 Room8 ) ,则显示“ you win ”,否则游戏结束。在进行游戏时,用户可以随时按“Q”键退出游戏。无论是成功走出迷宫, 或是步数超出八步, 还是用户退出游戏, 屏幕上都会显示所走的路径。如果是中途退出,路径以“Q”结尾。(2) 自己的特色程序实现了题目的基本要求,并实现了部分拓展要求。设置了三类房间,分别是普通的房间 normalroom ,特殊的房间 mirrorroom 和 dizzyroom 。 mirrorroom 特点是你选择的方向和你实际行进的方向是相反的; dizzyroom 特点是往东和西都还是在自己这个房间,并出现错误提示,南北正常行进。房间具体布局图: R oom1 Entrance R oom2 Mirrorroom R oom3 R oom7 D izzyroom R oom6 R oom8 Exit R oom4 R oom5 (3) 运行界面截图三、设计实现(1) 类之间的关系图基类(父类) 派生类(子类) (2) 主要函数的说明添加房间邻接关系函数: void add_connection(string dir, room *n) 传入一个方向( east , west , south , north ) 和一个指向该方向的邻居的指针。功能是让两个房间互相知道对方为自己某个方向上的邻居。比如 p1 指针指向房间 Room1 , p2 指针指向房间 Room2 , 语句“ p1->add_connection( "east" ,p2) ”执行后,房间 Room1 的 east 指针会指向房间 Room2 ,同时房间 Room2 的 west 指针会指向房间 Ro