迷宫成就达成 c语言

迷宫成就达成

迷宫


#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);
}

在这里插入图片描述

原创文章 159 获赞 4 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44769592/article/details/103220509
今日推荐