1

我不知道从哪里开始,我没有要求其他人为我做,但我不知道该怎么做,所以如果有人能指出我正确的方向,那就太好了,我无法使用谷歌找到任何东西,这是我需要的:

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

提前致谢

4

2 回答 2

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 艺术技能还有很多不足之处——我希望你能明白)。

于 2012-06-23T01:39:15.287 回答
1

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

于 2012-06-23T01:18:55.237 回答