Назначение массивов Snake

Работая в бизнес-среде, я больше не умею писать код и не использую старую добрую консоль. Моя работа повторяется и поэтому не вызывает особых затруднений.

Я решил бросить вызов самому себе, написав игру-змейку на консоли C #; и мальчик заставил мой мозг работать. Мне никогда не приходилось много думать об этом каждый день, но я чувствовал, что мои навыки программирования не улучшаются.

Но у меня проблема. Основной подход, который я использовал, заключался в создании класса змей и класса еды. Класс змейки использует массив для хранения всех координат, а затем класс рисования решает, какие координаты рисовать на экране.

Проблема в том, что при перемещении змейки массив заполняется (maxsize равен 250 для производительности), поэтому, когда я дохожу до конца массива, я хочу скопировать последние несколько координат во временный массив, очистить оригинал array и скопируйте временные координаты обратно в основной массив.

Моя проблема заключается в копировании координат x обратно в исходный массив. Я решил сделать это вручную, чтобы проверить, но это решение всегда заставляет мою бедную змейку оставлять один из своих сегментов на экране, когда его там не должно быть.

Как мне сделать это программно?

spoints[4, 0] = stemp[249, 0];
spoints[4, 1] = stemp[249, 1];
spoints[4, 2] = stemp[249, 2];

spoints[3, 0] = stemp[248, 0];
spoints[3, 1] = stemp[248, 1];
spoints[3, 2] = stemp[248, 2];

spoints[2, 0] = stemp[247, 0];
spoints[2, 1] = stemp[247, 1];
spoints[2, 2] = stemp[247, 2];

spoints[1, 0] = stemp[246, 0];
spoints[1, 1] = stemp[246, 1];
spoints[1, 2] = stemp[246, 2];

spoints[0, 0] = stemp[245, 0];
spoints[0, 1] = stemp[245, 1];
spoints[0, 2] = stemp[245, 2];

Я действительно не против опубликовать здесь всю игру, если кто-то действительно захочет покопаться в коде.

6
задан John Saunders 7 February 2012 в 19:02
поделиться