Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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 - Fatal编程技术网

C# 如何通过连接的航路点列表找到最短路径?

C# 如何通过连接的航路点列表找到最短路径?,c#,path-finding,C#,Path Finding,。。。是我的航路点类别。 我需要找到从A点到B点的最短路线。 各航路点相互连接。示例:X.连接包含Y所以Y.连接包含X 当我设计这个系统时,我想到了一个找到它们的方法。。。但它不起作用 您需要的是算法 A*是的一个扩展,但使用启发式方法来估计距离最终目的地的距离。这是两全其美的 Amit的页面非常适合学习整个算法,但对于更流畅的介绍,请查看。我花了一段时间才理解a*是如何工作的,但在我看来,花在学习上的时间确实是值得的。你所描述的是。 Wikipedia有一个算法列表。最简单的方法是从起始点到到

。。。是我的航路点类别。 我需要找到从A点到B点的最短路线。 各航路点相互连接。示例:X.连接包含Y所以Y.连接包含X 当我设计这个系统时,我想到了一个找到它们的方法。。。但它不起作用

您需要的是算法

A*是的一个扩展,但使用启发式方法来估计距离最终目的地的距离。这是两全其美的

Amit的页面非常适合学习整个算法,但对于更流畅的介绍,请查看。我花了一段时间才理解a*是如何工作的,但在我看来,花在学习上的时间确实是值得的。

你所描述的是。
Wikipedia有一个算法列表。

最简单的方法是从起始点到到达航路点执行搜索。

是。。。但是C语言中任何我不需要理解的东西?我不想让它成为我的代码。。。另外,我可以理解别人的代码。在我看来,这是最明智的方式。我将尝试翻译伪代码。是的。。。但是C语言中我不需要真正理解的东西吗?如果你想听听我的意见,最好理解A*,而不是简单地复制代码,从长远来看,它也会对你有所帮助,但你可以随心所欲
public class Waypoint
{
    System.Drawing.Point _loc = new System.Drawing.Point();
    public System.Drawing.Point Location { get { return _loc; } }

    List<Waypoint> _connections = new List<Waypoint>();
    public List<Waypoint> Connections { get { return _connections; } }

    public Waypoint() { }

    public Waypoint(int x, int y) { _loc = new System.Drawing.Point(x, y); }
}