我具有此功能来解决C ++中的迷宫问题,但是当我运行该程序时,在递归中遇到了错误访问错误。我认为这可能是一个无限循环。我不知道哪里出了什么问题。
bool Solve_Maze(int coorx,int coory) {
if((Map[coorx][coory]==Start)||(Map[coorx][coory]==path)) {
Map[coorx][coory]=wall;
Solve_Maze(coorx+1,coory);
Solve_Maze(coorx-1,coory);
Solve_Maze(coorx,coory+1);
Solve_Maze(coorx,coory-1);
}else if(Map[coorx][coory]==End) {
cout<<"You Solved the Maze!"<<endl;
delete Map;
return(true);
}
}
最佳答案
1)您不会在if语句中返回任何值
2)Map [coorx] [coory]在所有函数调用中始终分配给wall。wall是否指的是全局状态?