Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在网格上编程随机路径的好地方在哪里?_C#_Path Finding_Maze - Fatal编程技术网

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

C# 在网格上编程随机路径的好地方在哪里?,c#,path-finding,maze,C#,Path Finding,Maze,我不知道从哪里开始,我不是要求别人帮我做,但我不知道怎么做如果有人能给我指出正确的方向那就太好了,我在谷歌上找不到任何东西,以下是我需要的: 我需要创建一条从网格的一侧到另一侧的路径,但不是以随机方式以最短的路径,我需要确保如果路径与路径的另一部分平行,那么它至少相隔2个单位 预先感谢 < P>这似乎是一个很好的起点:它是一个很好的基础,很可能会很容易地应用到你的需要。 < P>这似乎是一个很好的起点:它是一个很好的基础,很可能会很容易地应用到你的需要。通过创建穿过迷宫的路径开始,如下所示: 在

我不知道从哪里开始,我不是要求别人帮我做,但我不知道怎么做如果有人能给我指出正确的方向那就太好了,我在谷歌上找不到任何东西,以下是我需要的:

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


预先感谢

< P>这似乎是一个很好的起点:它是一个很好的基础,很可能会很容易地应用到你的需要。

< P>这似乎是一个很好的起点:它是一个很好的基础,很可能会很容易地应用到你的需要。通过创建穿过迷宫的路径开始,如下所示:

在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艺术技能还有很多需要改进的地方——我希望你能理解我的想法)。

我曾经写过一个迷宫生成器,它从创建穿过迷宫的路径开始,如下所示:

在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艺术技能还有很多需要改进的地方——我希望你能理解我的想法)