Birlikte çalıştığım 2B oyunda, oyun motoru bana her birim için kendi görüş aralığındaki diğer birimlerin listesini verebilir.
Her bir grubun birbirine ("diğerleri" aracılığıyla) bağlı olan tüm birimler tarafından tanımlanacağı birimleri gruplar halinde sıralamak için yerleşik bir algoritma olup olmadığını bilmek istiyorum .
Bir örnek, sorunun daha iyi anlaşılmasına yardımcı olabilir (E = düşman, O = kendi birimi). Önce oyun motorundan alacağım veriler:
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
Sonra grupları aşağıdaki gibi hesaplamalıyım:
G1 = E1, E2, E3, E4, E5, O2, O5
G2 = O1, O9, E6, E7
Görüş alanı için değişmeli bir özellik olduğu varsayılabilir: [A B'yi görürse, B A'yı görür].
Sadece açıklığa kavuşturmak için: Zaten oyun motoru bilgilerinin her satırında döngüler yaratan naif bir uygulama yazdım, ama görünüşe göre, derinlemesine çalışılmış ve çeşitli yerleşik algoritmalara sahip olabilir (belki de geçiyor) ağaç benzeri bir yapı ile?). Benim sorunum yararlı google hit döndürdü sorunumu açıklamak için bir yol bulamadı olmasıdır.
Yardımınız için şimdiden teşekkür ederim!