在C错误中使用回溯解决迷宫

时间:2017-05-10 22:13:07

标签: c backtracking maze

我试图找到退出迷宫的最佳方式([N] [N]阵列,N <20)其中1是通道,0是墙。 从左上角[0] [0]开始,从右下角[N-1] [N-1]退出。

我收到以下错误: 错误C2371:'is_min':重新定义;不同的基本类型

知道我做错了什么吗? 提前谢谢

int search_path(int n, int maze[][N], int i,  int j){

    int maxlen = 400;
    int current_best;


    if (maze[i][j] == 0) return False;
    if (maze[i][j] == -1) return False;
    if (i==N-1 && j==N-1 ) return True;

    maze[i][j] = -1;

    if(i < N-1) 
        is_min(n,maze,i,j+1,&maxlen);
    if  (i >0 ) 
        is_min(n,maze,i-1,j,&maxlen) ;
    if  (j < N-1 ) 
        is_min(n,maze,i,j+1,&maxlen) ;
    if  (j >0 ) 
        is_min(n,maze,i,j-1,&maxlen);

     maze[i][j] = 1;

    if ((maxlen == 400)||(maxlen ==0))
        return False;

     return maxlen+1;

};

void is_min(int n, int maze[][N], int i, int j, int *maxlen){

    int current_best = search_path(n,maze, i, j);

    if ((current_best < *maxlen) && (current_best > 0)){
        *maxlen = current_best;};
};





    void path(int n, int maze[][N])
{
    //find best path, starting from 0,0
    int best = search_path(n, maze, 0,0);

    if (best == 0){
        printf("No path found!\n");}
    else
        printf("Shortest path length is:%d\n", best);

 }

0 个答案:

没有答案
相关问题