Dalam game 2D yang saya kerjakan, mesin game dapat memberi saya, untuk setiap unit, daftar unit lain yang berada dalam jangkauan pandangannya.
Saya ingin tahu apakah ada algoritma yang ditetapkan untuk mengurutkan unit dalam kelompok , di mana setiap kelompok akan ditentukan oleh semua unit yang "terhubung" satu sama lain (bahkan melalui yang lain).
Contoh mungkin membantu memahami pertanyaan dengan lebih baik (E = musuh, O = unit sendiri). Pertama data yang akan saya dapatkan dari mesin game:
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
Maka saya harus menghitung kelompok sebagai berikut:
G1 = E1, E2, E3, E4, E5, O2, O5
G2 = O1, O9, E6, E7
Dapat diasumsikan dengan aman bahwa ada properti komutatif untuk bidang pandang: [jika A melihat B, maka B melihat A].
Hanya untuk memperjelas: Saya sudah menulis implementasi naif yang berulang pada setiap baris info mesin gim, tetapi dari tampilan itu, tampaknya masalah yang cukup umum untuk dipelajari secara mendalam dan memiliki berbagai algoritma yang telah mapan (mungkin lewat melalui beberapa struktur seperti pohon?). Masalah saya adalah bahwa saya tidak dapat menemukan cara untuk menggambarkan masalah saya yang mengembalikan hit google yang bermanfaat.
Terima kasih sebelumnya atas bantuan Anda!