私が使用している2Dゲームでは、ゲームエンジンは、ユニットごとに、そのビュー範囲にある他のユニットのリストを提供できます。
グループ内のユニットをソートするための確立されたアルゴリズムがあるかどうかを知りたいのですが、各グループは互いに「接続」されているすべてのユニットによって定義されます(他のユニットを介しても)。
例は、質問をよりよく理解するのに役立つかもしれません(E =敵、O =自分のユニット)。まず、ゲームエンジンから取得するデータ:
E1 can see E2, E3, O5
E2 can see E1
E3 can see E1
E4 can see O5
E5 can see O2
E6 can see E7, O9, O1
E7 can see E6
O1 can see E6
O2 can see O5, E5
O5 can see E1, E4, O2
O9 can see E6
次に、次のようにグループを計算する必要があります。
G1 = E1, E2, E3, E4, E5, O2, O5
G2 = O1, O9, E6, E7
視野に可換プロパティがあると安全に仮定できます:[AがBを見る場合、BはAを見る]。
明確にするために、ゲームエンジン情報の各行でループする単純な実装を既に作成しましたが、それを見ると、深く研究され、さまざまな確立されたアルゴリズム(おそらくいくつかのツリーのような構造を介して?)。私の問題は、有用なGoogleヒットを返した問題を説明する方法が見つからなかったことです。
よろしくお願いします!