这仅仅是一个非常基本的主意,开始你了:
生成随机点。
通过仅从一个点垂直移动并从另一个点水平移动(有两种方法可以实现这一点),反复连接两个随机点。请参阅示例了解更多详情。
假设你想要一个非分裂路径,这些选择的点不应该两个已经连接到任何其他点(但一个已经连接好)。
如果您遇到困难(如果您无法将某一点连接到任何事物,或者您已经从头到尾做了一条路径并且有未完成的点)和/或限制您以这种方式选择点的方式以防止/减少卡住的可能性。例如,连接起点和终点不会让你感觉到任何地方。
例如,去你的迷宫:
随机生成的积分将是这样的:(注意,开始和结束点在这里可以固定,或至少受到限制到(某些?)边)
1/////////
////// 4///
//////////
//// 3/////
//////////
/2////////
//////// 5 6
然后你从3水平1和垂直移动的另一种做法已经从垂直水平1从3
移动和连接1和
1 * * * #/////
//// */4///
//// */////
//// 3/////
//////////
/2////////
//////// 5 6
然后以相同的方式连接3和2,2和4,4和5以及5和6。
请注意,当连接5和6时,由于它们位于同一水平线上,所以它们只能直接连接而没有交点。或者你可以把它看作是5或6垂直移动0单位。
为什么你想要它是随机的?那么你无法控制它是多么的容易/困难。 – Wain
研究迷宫生成算法:http://en.wikipedia.org/wiki/Maze_generation_algorithm http://stackoverflow.com/questions/38502/whats-a-good-algorithm-to-generate-a-maze http:/ /flashgamedojo.com/wiki/index.php?title=Fathom's_Labyrinth_Algorithm – LearnCocos2D
连接两个航点的线是否可以跨越另一条线? –