0
我試圖在Objective-C中生成一個迷宮。我已經構建了一個圖並連接了所有的邊(我認爲)。但是,當我試圖製造實際的迷宮時,我陷入了困境。使用DFS的迷宮一代
下面是我使用的代碼:
- (void)visitFromCurrentPoint:(GridPoint *)point fromPreviousVertex:(Vertex *)prev {
if ([grid allVerticiesVisited]) {
NSLog(@"done!");
return;
}
Vertex *cur = [grid vertexAtPoint:point];
[grid setVertextVisited:cur];
NSArray *borderingVerticies = [grid verticiesBorderingPoint:point];
Vertex *randomVertex;
int random = arc4random()%[borderingVerticies count];
randomVertex = [borderingVerticies objectAtIndex:random];
if (![randomVertex visited]) {
[cur.edgeList removeObject:prev];
[prev.edgeList removeObject:cur];
[self visitFromCurrentPoint:[randomVertex point] fromPreviousVertex:cur];
}
else {
[self visitFromCurrentPoint:point fromPreviousVertex:cur];
}
}
然而,這並不工作,我得到一個堆棧溢出。你能看到我做錯了什麼嗎?
在此先感謝!
那麼這裏有什麼問題? – 2012-08-03 19:11:55
@ BlueRaja-DannyPflughoeft哎呀,甚至忘了問。我得到一個堆棧溢出。我已經編輯了這個問題,現在就包括這個。抱歉! – 2012-08-03 19:14:35
遞歸太多了 – nielsbot 2012-08-03 19:29:55