迷宫成就达成
迷宫
#include <stdio.h>
#define R 9
#define C 10
int M[R][C]={
{0,0,0,0,0,0,0,0,0,0},
{0,1,1,0,0,0,0,0,0,0},
{0,1,1,1,0,0,0,0,0,0},
{0,1,1,1,1,1,1,0,0,0},
{0,1,0,1,1,0,1,0,0,0},
{0,1,1,0,1,0,1,1,1,0},
{0,0,0,0,1,1,1,0,1,0},
{0,0,0,0,0,0,1,1,1,0},
{0,0,0,0,0,0,0,0,0,0},
};
int t[R][C]={0};
int move[4][2]={
{1,0},//南
{0,1},//东
{-1,0},//北
{0,-1}//西
};
int tag;
int Maze(int x,int y);
int Maze(int x,int y)
{
if(x==7&&y==8) return 1;//走到出口
for(int i=0;i<4;i++)
{
int a=x+move[i][0];
int b=y+move[i][1];//计算出下一步的坐标
if(M[a][b]==1&&t[a][b]==0)//(a,b)可以走并且(a,b)没被走过
{
t[a][b]=1;
tag=Maze(a,b);//向下走一格,并把值给tag
if(tag==1)
{
printf("(");
printf("%d",a);
printf(",");
printf("%d",b);
printf(")");
return 1;//回到上一层
}
}
}
return 0;
}
int main()
{
Maze(1,1);
}