/*--------------------------------------------------------------------------------------------
//文件名称:MazeMouse.cpp
//功 能:找出走出迷宫的所有路径,以及最短路径。
//作 者:晒晒周
--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------
//修改记录:编号 日期 修改者 备注
// 0 2003.04.14 晒 晒 周 创 建
--------------------------------------------------------------------------------------------*/
#include "stdafx.h"
#include "iostream.h"
#include "string.h"
#include "stdio.h"
double dMeans=0,dWalkLen=10000;//dMeans表示走出迷宫的方法,dWalkLen表示当前走出迷宫最少步数
char Maze[10][52]={
{"###################################################"},
{"% ## #### ### ### # ####"},
{"# ## # ### ### ###### ### ############ # # #"},
{"# ## ## ### ## ## # # ## # # ####"},
{"# # # ## ## ### # # ######### # # # ##"},
{"# # # # ## ########## #### ## # #"},
{"# ## ### ## ## ### #### ## ## # # ######### #"},
{"# # # ## ## # ## #### # # ## ####"},
{"#### ## #### #### ## # ### ## ## @"},
{"###################################################"},
}; //迷宫
int MazeFlag[10][51]; //迷宫的标志:0表示未走过,i(i=1,2,3,4)表示已经走过了,i表示方向。
int MazeMin[10][51]; //路径最小的迷宫的标志
void Walk(int nx,int ny);//走迷宫的函数,nx是列,ny是行
void PrintOut(); //打印路径及迷宫的函数,同时比较获取路径较短的行走方法
int Judge(int nx,int ny,int i);//判断在第nx列ny行向第i个方向走是否可以,可以返回1否则返回0。
//i=1表示向右,2表示向下,3表示向左,4表示向上