1

タイルのボードにダイクストラ法を実装しています。すべてのタイルを優先キューに保存し、開始位置からの距離で並べ替えます。Javaでは、これは次のようになります。

Queue<Point> pq = new PriorityQueue<Point>(new Comparator() { /* sort by distance from start */ });

C#XNAで同等のものは何でしょうか?C#にはクラスがありますが、それはオブジェクトPriorityQueueに対してのみ機能し、オブジェクトは機能しません。IComparablePoint

4

2 に答える 2

1

構造体Pointから派生することはできないため、複合メンバーとしてPointを使用して、IComparableComparablePointクラスの最小限の実装を行うことができます。

于 2010-02-06T21:48:37.457 に答える
1

簡単な解決策は、ノードを格納するための独自のクラスを実装し、それを比較可能にすることだと思います(IComparableインターフェイスを実装することによって)。

于 2010-02-06T21:40:36.817 に答える