Простое решение - создать массив [горизонтальный] [вертикальный] типа, чтобы на каждой координате на экране был один элемент. Каждый тип может быть змеиным направлением, пищей, ядом, стеной или пустым. Это означает, что вам нужно запомнить только положение головы и хвоста змеи, а также количество пищи и ядов, а массив описывает, как выглядит экран.
Это избавляет от хлопот, связанных с элементами змеи, и позволяет легко размещать на экране новые продукты питания или отравляющие предметы, гарантируя, что вы не поместите их в место, которое уже занято.
Когда вам нужно удалить хвостовой элемент змеи, определите направление хвоста, используя direction: = array [tailx, taily]; а затем установите массив [tailx, taily]: = пусто. После этого обновите tailx и taily в зависимости от направления. Вот и все.