Nel gioco 2D con cui sto lavorando, il motore di gioco è in grado di fornirmi, per ogni unità, l'elenco delle altre unità che si trovano nel suo raggio di vista.
Vorrei sapere se esiste un algoritmo stabilito per ordinare le unità in gruppi , in cui ciascun gruppo sarebbe definito da tutte quelle unità che sono "collegate" tra loro (anche attraverso gli altri).
Un esempio potrebbe aiutare a capire meglio la domanda (E = nemico, O = propria unità). Innanzitutto i dati che otterrei dal motore di gioco:
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
Quindi dovrei calcolare i gruppi come segue:
G1 = E1, E2, E3, E4, E5, O2, O5
G2 = O1, O9, E6, E7
Si può presumere che esista una proprietà commutativa per il campo visivo: [se A vede B, allora B vede A].
Giusto per chiarire: ho già scritto un'implementazione ingenua che gira su ogni riga delle informazioni del motore di gioco, ma dal suo aspetto, sembra un problema abbastanza generale da essere stato studiato in profondità e avere vari algoritmi stabiliti (forse passando attraverso una struttura ad albero?). Il mio problema è che non sono riuscito a trovare un modo per descrivere il mio problema che ha restituito utili risultati di Google.
Grazie in anticipo per il vostro aiuto!