У мене є 2D-стратегія, заснована на плитці. Я блукаю, як вирішити взаємозв’язок між картою та одиницями на карті.
Враховуючи координати плитки, мені потрібно мати змогу отримати одиницю, що стоїть на ній, якщо така є. У той же час, якщо мені дають одиницю, я хочу отримати координату підрозділу.
Я бачив два рішення цього. Першим рішенням було б, щоб одиниці зберігали координати, а карта зберігала посилання на одиниці пам’яті у своїх плитках. Це створює циклічну залежність між картою та одиницями. Мені потрібно переконатися, що карта будь-якої одиниці синхронізується, якщо блок рухається.
Другим рішенням було б лише одиниці відслідковувати свої координати. Щоб сказати, чи містить плитка одиницю, і щоб отримати цю одиницю, я пройду через весь набір одиниць одиниці, я знайду одну з відповідними координатами. Це позбавляє циклічної залежності, але воно втрачає властивість O (1), яке перше рішення мало для пошуку одиниць з карти. Це може скластись, оскільки я хочу мати змогу регулярно сканувати карту для таких речей, як пошук шляху, визначення дальності руху та пошук дійсних цілей для даної одиниці.
Я також не можу просто зберігати одиниці на карті (чи можна?). Підрозділи асоціюються з "арміями", або гравцями, або AI. Армія повинна мати можливість легко отримувати доступ до всіх своїх підрозділів і перебирати їх.
Оскільки це, як видається, є загальним питанням у стратегічних іграх, чи існують інші схеми, окрім двох, які я описав для управління взаємовідносинами одиниця / карта?