迷路を生成して解決するプログラムを作成しましたが、解決部分にバグがあります。
それは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_jcow4l
私のコードはここにあり ますhttps://www.dropbox.com/s/vldkcv4fy6bp1ff/Source.cpp
問題は解決しました皆さんに感謝します
迷路を解くための私の元のコードは
`else if(randomNum == 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;