1

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#を使用しました。どうもありがとうございます。

4

1 に答える 1