c语言模拟迷宫程序.docVIP

  • 17
  • 0
  • 约4.21千字
  • 约 11页
  • 2016-09-21 发布于重庆
  • 举报
c语言模拟迷宫程序

c语言模拟迷宫程序 //#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表示向上 /*--------------------------------------------------------------------------------------------- //行走迷宫函数: void Walk (int nx,int ny) //功能:判断是否已经走出迷宫,如果走出则打印路径,如果没有则开始逐个方向判断是否可以行走, // nb sp; 如果都不能行走,或已经返回。则退出该位置,即将该位置的标志写为0表明未走过。 //无返回值,形参nx为当前位置的列,ny为当前位置的行。 ---------------------------------------------------------------------------------------------*/ void Walk(int nx,int ny) { if (Maze[nx][ny]==@)//判断是否走出迷宫,@是迷宫出口标志 PrintOut(); //走出则打印出迷宫及行走路径 else //未走出迷宫 { for (int i=1; i=4; i++)//四个方向逐个行走,i=1向右 2向下 3向左 4向上 { if (Judge(nx,ny,i)) //如果列为nx行为ny的位置向i方向是否可以行走 { MazeFlag[nx][ny]=i;//将标志位置i表明该位置向i方向可行走 if (i==1) //分散处理,根据不同的i来确定下一步的位置,以便行走。 Walk(nx,ny+1); else if (i==2) Walk(nx+1,ny); else if (i==3) Walk(nx,ny-1); else if (i==4) Walk(

文档评论(0)

1亿VIP精品文档

相关文档