J'ai une stratégie 2D basée sur les tuiles en cours d'élaboration. Je me demande comment gérer la relation entre la carte et les unités sur la carte.
Étant donné une coordonnée de tuile, je devrai être en mesure de placer l'unité sur elle, le cas échéant. En même temps, si on me donne une unité, je veux pouvoir obtenir les coordonnées de l'unité.
J'ai vu deux solutions à cela. La première solution serait que les unités stockent une coordonnée et que la carte stocke les références d'unité dans ses tuiles. Cela crée une dépendance cyclique entre la carte et les unités. Je devrais m'assurer que la carte et n'importe quelle unité sont synchronisées si l'unité se déplace.
La deuxième solution consisterait à ce que seules les unités gardent une trace de leurs coordonnées. Pour savoir si une tuile contient une unité et pour obtenir cette unité, je ferais une boucle à travers l'ensemble des unités. J'en trouve une avec les coordonnées correspondantes. Cela supprime la dépendance cyclique, mais il perd la propriété O (1) que la première solution avait pour rechercher des unités sur la carte. Cela peut s'additionner car je veux pouvoir numériser la carte régulièrement pour des choses telles que la recherche de chemin, la détermination de la plage de mouvement et la recherche de cibles valides pour une unité donnée.
Je ne peux pas non plus simplement stocker les unités sur la carte (ou puis-je?). Les unités sont associées à des "armées", soit des joueurs, soit des IA. Une armée devrait pouvoir accéder facilement à toutes ses unités et les parcourir.
Étant donné que cela semble être un problème commun dans les jeux de stratégie, existe-t-il d'autres modèles que les deux que j'ai décrits pour gérer les relations unité / carte?