在网格上编程随机路径的好地方在哪里?

时间:2012-06-23 00:58:37

标签: c# path-finding maze

我不知道从哪里开始,我不是要求别人为我做这件事,但我不知道如何做到这一点,如果有人能指出我的方向很好,那我就找不到任何东西使用谷歌,这是我需要的:

我需要创建一个从网格的一侧到另一侧的路径,但不是以最短的方式随机,我需要确保如果路径与路径的另一部分平行,它至少是相隔2个单位。

提前致谢

2 个答案:

答案 0 :(得分:4)

我写了一个迷宫生成器,它开始于通过迷宫创建路径,如下所示:

在y轴上选择两个随机偏移,每侧一个,y1和y2,然后在x轴x上选择一个随机偏移。然后用(0,y1)到(x,y1),(x,y1)到(x,y2),(x,y2)到(w-1,y2)的直线连接两个点,其中w是宽度:

     x
   .....
y1 XXX..
   ..X..
   ..XXX y2
   .....
   |-w-|

然后,我重复地将“凸起”添加到初始路径,直到它具有所需的长度,例如,原始长度的两倍。

凹凸看起来像这样:

在:

 .....
 XXXXX
 .....
 .....

后:

 .....
 XX.XX
 .XXX.
 .....

这种类型的转换可应用于当前路径上任何可用空间的四个方向中的任何一个。

(我的ASCII艺术技巧有很多不足之处 - 我希望你能得到这个想法。)

答案 1 :(得分:1)

这似乎是一个很好的起点:http://www.csharpcity.com/reusable-code/a-path-finding-library/这是一个很好的基础,可以很容易地应用到您的需求。