Зальцман М.
Компьютерные игры: как это делается
стр. 185

завершить игру - вот то, что будет отличать вас от тех героев, что начали, но не смогли... Один из моих приятелей, программист, любит повторять: «Завершить игру невозможно, можно лишь прекратить над ней работать». Всегда найдется что-то, что улучшит код, но однажды надо набраться смелости и сказать: «Хватит, он уже достаточно хорош», - и оставить игру в покое.

Я обнаружил один полезный технический прием при работе с Си++, который заключается в использовании массивов вместо динамического выделения памяти всюду, где только можно. Вы можете реализовать любую общую структуру данных (списки, очереди, стеки, кучи, деревья), используя массивы, - для этого достаточно применить индекс массива в качестве указателя. Это сразу же устранит связанные со структурой данных проблемы утечки памяти и, что существенно, среди прочих выгод заставит вас продумать худшие варианты условий выполнения вашей программы.

Ниже представлен пример реализации связанного списка через массив с указателем в сравнении с вариантом использования динамической памяти, а также небольшой пример, где противопоставлены эффективность и гибкость.

Пример массива:

При использовании указателей и динамического выделения памяти связанный список может выглядеть примерно так:

Содержимое адресов памяти

001    [Указатель на первый элемент (010)]

002    [Указатель на последний элемент (062)]

010    [Указатель на графическое представление объекта]

011    [Здоровье]

012    [Указатель на следующий элемент (053)]

053    [Указатель на графическое представление объекта]

054    [Здоровье]

055    [Указатель на следующий элемент (098)]

062    [Указатель на графическое представление объекта]

063    [Здоровье]

064    [Указатель на NULL (конец списка)]

098    [Указатель на графическое представление объекта]

099    [Здоровье]


Новости
Lego займется созданием безопасной онлайн-среды для детей
Партнеры планируют совместно создать безопасную цифровую среду для детей и наполнить ее адаптированным контентом, говорится в сообщении Lego.
SEGA продолжит серию House of the Dead аркадой Scarlet Dawn
Хоррор-игра House of the Dead: Scarlet Dawn разрабатывается на Unreal Engine 4 и количество жутких врагов в ней обещает стать рекордным для серии.