Objective-C で迷路を生成しようとしています。グラフを作成し、すべてのエッジを接続しました (と思います)。しかし、実際の迷路を作ろうとすると行き詰まります。
私が使用しているコードは次のとおりです。
- (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];
}
}
ただし、これは機能せず、スタック オーバーフローが発生します。私が間違っていることがわかりますか?
前もって感謝します!