指示方向的迷宫求解器

时间:2015-10-30 07:42:29

标签: c++ recursion maze

我想用符号显示路径的方向">","<"," v"," ^ &#34 ;.然而,符号在第一个转折点停止显示。我的代码出了什么问题?

bool find_path_with_direction(int row, int col, char maze[ROW][COL])

{
     if(row > ROW-1 || col > COL-1)    //out of boundary
         return false;

    if(maze[row][col]=='d')   // destination
    return true;

    if(maze[row][col]!= ' '&& maze[row][col]!= 's')  //obstacle
    return false;


    if(find_path_with_direction(row, col+1, maze)==true)
    maze[row][col]= '>';
    return true;

    if(find_path_with_direction(row, col-1, maze)==true)
    maze[row][col]= '<';
    return true;

    if(find_path_with_direction(row+1, col, maze)==true)
    maze[row][col]= 'v';
    return true;

    if(find_path_with_direction(row-1, col, maze)==true)
    maze[row][col]= '^';
    return true;

    maze[row][col]=' ';

    return false;
}

1 个答案:

答案 0 :(得分:2)

你的if条件有问题。

您没有使用提出问题的{}

使用左右括号{ }
例如,像这样写下你的if条件。

if(find_path_with_direction(row, col+1, maze)==true)
{
    maze[row][col]= '>';
    return true;
}

如果您正在编写这样的代码。

if(find_path_with_direction(row, col+1, maze)==true)
maze[row][col]= '>';
return true; 

此处,无论条件是true还是false,都会始终执行return true;