家庭作業,我只是問,如果我的邏輯是合理的,如果沒有,我錯過了什麼情況,而不是如何去做。遞歸逃脫迷宮
我有一個任務,我們必須創建一個隨機生成迷宮的數據文件給我們。每個房間都有一個介於1-100之間的數字,並且具有(最多)4個相鄰房間:北部,東部,南部和西部。沒有相鄰房間的房間將有一個帶有否定標識符的相鄰房間。我們的「人」隨機掉進這些房間之一,我們必須找到出路。外面是由0
我所擁有的一切,但完成遞歸,這幾乎是做了房號指定。這是我的解決方案:
void Graph::findPath(Room * curRoom)
{
if(curRoom -> myNumber == 0)
//Escaped!
else
{
if(curRoom -> North -> visited == false)
{
curRoom -> visited == true;
findPath(curRoom -> North)
}
if(curRoom -> East -> visited == false)
{
curRoom -> visited == true;
findPath(curRoom -> East)
}
if(curRoom -> South -> visited == false)
{
curRoom -> visited == true;
findPath(curRoom -> South)
}
if(curRoom -> West -> visited == false)
{
curRoom -> visited == true;
findPath(curRoom -> West)
}
}
}
我認爲我正確地擁有它。我唯一擔心的是,我們需要打印出正確的路徑,但我不知道如何在不打印不正確的路徑的情況下執行此操作。
謝謝你的時間。
如果缺少任何信息,讓我知道,我會回答,匆忙職位。
目前不打印任何東西,再加上如其他人在沒有必要的,如果您應該改變。 – FailedDev
如果需要的話,因爲外面是一個房間沒有指向任何與它的NSEW指針,我不想訪問錯誤的內存。但是我沒有分享這些信息,對不起。 – Joshua
那麼,如果你寫了(curRoom - > myNumber!= 0){...}而沒有其他的呢? – FailedDev