Ho una strategia basata su piastrelle 2D nelle opere. Sto vagando su come gestire la relazione tra la mappa e le unità sulla mappa.
Data una coordinata di tessera, dovrò essere in grado di far stare l'unità, se presente. Allo stesso tempo, se viene data un'unità, voglio essere in grado di ottenere le coordinate dell'unità.
Ho visto due soluzioni a questo. La prima soluzione sarebbe quella di fare in modo che le unità memorizzino una coordinata e i riferimenti alle unità di memorizzazione della mappa nelle sue tessere. Questo crea una dipendenza ciclica tra la mappa e le unità. Dovrei assicurarmi che la mappa e qualsiasi unità siano sincronizzate se l'unità si sposta.
La seconda soluzione sarebbe quella di fare in modo che le unità tengano traccia delle loro coordinate. Per sapere se una tessera contiene un'unità e per ottenere quell'unità, scorrerei l'intero insieme di unità unità e ne trovo una con coordinate corrispondenti. Questo elimina la dipendenza ciclica, ma perde la proprietà O (1) che la prima soluzione aveva per cercare le unità dalla mappa. Ciò potrebbe sommarsi poiché desidero essere in grado di scansionare regolarmente la mappa alla ricerca di elementi quali la ricerca del percorso, la determinazione del raggio di movimento e la ricerca di obiettivi validi per una determinata unità.
Inoltre non posso semplicemente memorizzare le unità nella mappa (o posso?). Le unità sono associate a "eserciti", sia giocatori che AI. Un esercito dovrebbe essere in grado di accedere e iterare facilmente su tutte le sue unità.
Dal momento che questo sembra essere un problema comune nei giochi di strategia, ci sono altri schemi oltre ai due che ho descritto per gestire le relazioni unità / mappa?