我写了一个程序来生成一个迷宫并解决它,但是它在解决部分有一些错误。
它形成一个像5 * 5或16 * 16的方形迷宫。
迷宫从 2D 数组中的 (0,0) 开始,到 (size()-1, size()-1) 结束。
我用“1”来表示结束的路径。您可以从下图中看到,尽管程序可以找到出口,但仍有一些不需要的“1”。
对不起大家,我真的无法调试这个。任何人都可以帮助我或指导我吗?非常感激!
屏幕截图在这里。我不允许直接发布图像 https://photos-1.dropbox.com/t/0/AADjdwSgmLdVKCZrI1C-gDvwZ9ORj0rGbv3UJ7AYqXWeuA/10/7014161/png/2048x1536/2/1355295600/0/2/bug.png/5sQR3E_jyMPe0lMUC_sdm2cf2
我的代码在这里 https://www.dropbox.com/s/vldkcv4fy6bp1ff/Source.cpp
问题已解决 谢谢大家
我解决迷宫的原始代码是
`否则如果(随机数==1){
if (y+1<myMaze.size() && !myMaze[x][y+1].left && !myMaze[x][y+1].visited)
{
y++;
myMaze[x][y].truePath=true;
myMaze[x][y].visited=true;
s1.push(myMaze[x][y]);
randomNum=rand()%4;
}
else
{
rightBusted=true;
randomNum=rand()%4;
}`
然后我只是在if语句中添加这些代码来将bool变量重置为false,然后问题就解决了
downBusted=false;
rightBusted=false;
topBusted=false;
leftBusted=false;