A* の実装に非常に役立つコードを見つけました。しかし、私は1つの問題に直面しています。マンハッタン距離を計算する必要があります。実装しようとしましたが、うまくいきません。このコードは、ユークリッド距離の計算を提供します。
public Node(Node parentNode, Node goalNode, int gCost,int x, int y)
{
this.parentNode = parentNode;
this._goalNode = goalNode;
this.gCost = gCost;
this.x=x;
this.y=y;
InitNode();
}
private void InitNode()
{
this.g = (parentNode!=null)? this.parentNode.g + gCost:gCost;
this.h = (_goalNode!=null)? (int) Euclidean_H():0;
}
private double Euclidean_H()
{
double xd = this.x - this._goalNode .x ;
double yd = this.y - this._goalNode .y ;
return Math.Sqrt((xd*xd) + (yd*yd));
}
コードはc#を使用しました。どうもありがとうございます。