По суті, вам знадобляться дві структури даних (логічна, нав'язлива чи реальна, залежно від решти коду). Перший буде відстежувати ланцюги предметів, а другий шлях.
Ланцюжок Просто вам потрібно знати, які об’єкти слідують за іншими об’єктами. У найпростішому випадку це буде просто "А" за "В", але може включати більше послідовників. У ланцюжку є призначений лідер .
Шлях Для кожного ланцюга вам знадобиться шлях. Залежно від того, як працює ваша гра, буде визначатися, як це структуровано. У більшості випадків це буде якийсь пов'язаний список. Це дозволить відстежувати позиції, які повинні дотримуватися всі в ланцюжку.
Тепер лідер ланцюга додаватиме елементи до контуру . Кожен раз, коли він рухатиметься, він додаватиме щось на голову списку. Кожен об’єкт у ланцюжку запам’ятовує, де він у списку. Що стосується переміщення, він просто переходить до наступного пункту у списку (за потреби інтерполюється відповідним чином). Коли останній елемент у ланцюжку переміщається повз елемент у списку, цей елемент може бути викинутий (він буде в хвісті).
Метафорично лідер залишає хлібний слід для своїх послідовників. Останній підписник у списку споживає сухарі.
Чи ваш список містить окремі точки, або лише вершини шляху чи щось інше, повністю визначається вашим ігровим механізмом. Але в будь-якому випадку я не бачу, що ви зможете уникнути самого списку.