我是Javascript开发人员学习Go并且我正在尝试将A *作为迷宫求解器实现。 Here's我的第一次尝试(输入迷宫来自this每日程序员挑战):
似乎我已经使算法实现正确,因为我找到了具有各种输入的目标节点,但我似乎无法使reconstructPath工作。我有一个非常唠叨的预感,这与指针/解除引用/通过引用传递与传递我在cameFrom中的值传递有关,但我不能为我的生活解开它。例如,输入:
start := maze.Nodes[1][1]
end := maze.Nodes[1][3]
path, _ := maze.FindPath(start, end)
fmt.Println(path)
在我的主要goroutine输出中
[{1 3 0xc42000fa20 0 0 . <nil>}]
有人能在我的方法中发现错误/问题吗?