我很难让 H 和 G 正常工作。发生的事情是,当我运行程序时,它有时会找到最佳路径,有时会避开到达该位置的路。
以下是正在发生的事情的一些屏幕截图:
这是我目前对 F、H 和 G 的设置:
public double f(Node current, Node adj, Node goal)
{
double f = g(current, adj) + h(current, goal);
return f;
}
public double h(Node current, Node goal)
{
double dx = goal.getX() - current.getX();
double dy = goal.getY() - current.getY();
double h = Math.sqrt(dx*dx + dy*dy);
return h;
}
public double g(Node current, Node adj)
{
double dx = adj.getX() - current.getX();
double dy = adj.getY() - current.getY();
double g = Math.sqrt(Math.abs(dx) + Math.abs(dy));
System.out.println("g " + g);
return g;
}
谢谢!