我的迷宫是一个具有二维的 int 数组,int maze[][]
包含0,1,START(2),GOAL(3)
. 我想打印最短路径。
我有一个功能,但它不显示最短路径,而是一条到最后的路径:
bool RenderThread::find_path(int x, int y)
{
int maze_size=mmaze->size*2;
if ( x < 0 || x > maze_size || y < 0 || y > maze_size ) return FALSE;
if ( toSolve1->maze_data[y][x] == G ) return TRUE;
if ( toSolve1->maze_data[y][x] != PATH && toSolve1->maze_data[y][x] != S ) return FALSE;
toSolve1->setRed(y,x);
if ( find_path(x, y - 1) == TRUE ) return TRUE;
if ( find_path(x + 1, y) == TRUE ) return TRUE;
if ( find_path(x, y + 1) == TRUE ) return TRUE;
if ( find_path(x - 1, y) == TRUE ) return TRUE;
toSolve1->setPath(y,x);
return FALSE;
}