Esempio n. 1
0
int main( ){     //主函数
    MazeType maze;
    PostType start,end;
    InitMaze(maze);//初始化并创建迷宫
    start.r=1;start.c=1;//迷宫入口坐标
    end.c=8;end.r=8; //迷宫出口坐标
    PrintMaze(maze);
    MazePath(maze,start,end);
    
    PrintMaze(maze);//打印路径

    return 0;
}
Esempio n. 2
0
void TestMaze()
{
	int a[n][n] = {};
	GetMaze((int *)a, n);
	PrintMaze((int *)a, n);
	stack<Pos> path;
	Pos entry = { 2, 0 };
    bool ret = MazePath((int *)a, n, entry, path);
	cout << "ÊÇ·ñÓÐͨ·" << ret << endl;

	PrintMaze((int *)a, n);

}
Esempio n. 3
0
int main() 
{ 
	int sto[N][N]; 
	int n; //迷宫行 
	printf("请输入迷宫的数 n="); 
	scanf("%d",&n); 
	struct mark start,end; //start,end入口和出口的坐标 
	int add[4][2]={{0,1},{1,0},{0,-1},{-1,0}};//行增量和列增量 方向依次为东西南北 
	initmaze(sto,n);//建立迷宫 
	start.x=1;
	start.y=1; 
	end.x=n;
	end.y=n; 
	MazePath(start,end,sto,add); //find path 
	return 0;
}
Esempio n. 4
0
 void main()
 {
   PosType begin,end;
   int i,j,x,y,x1,y1;
   printf("请输入迷宫的行数,列数(包括外墙):");
   scanf("%d,%d",&x,&y);
   for(i=0;i<x;i++) /* 定义周边值为0(同墙) */
   {
     m[0][i]=0; /* 行周边 */
     m[x-1][i]=0;
   }
   for(j=1;j<y-1;j++)
   {
     m[j][0]=0; /* 列周边 */
     m[j][y-1]=0;
   }
   for(i=1;i<x-1;i++)
     for(j=1;j<y-1;j++)
       m[i][j]=1; /* 定义通道初值为1 */
   printf("请输入迷宫内墙单元数:");
   scanf("%d",&j);
   printf("请依次输入迷宫内墙每个单元的行数,列数:\n");
   for(i=1;i<=j;i++)
   {
     scanf("%d,%d",&x1,&y1);
     m[x1][y1]=0; /* 定义墙的值为0 */
   }
   printf("迷宫结构如下:\n");
   Print(x,y);
   printf("请输入起点的行数,列数:");
   scanf("%d,%d",&begin.x,&begin.y);
   printf("请输入终点的行数,列数:");
   scanf("%d,%d",&end.x,&end.y);
   if(MazePath(begin,end)) /* 求得一条通路 */
   {
     printf("此迷宫从入口到出口的一条路径如下:\n");
     Print(x,y); /* 输出此通路 */
   }
   else
     printf("此迷宫没有从入口到出口的路径\n");
 }