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