Игра Snake — использует только максимальную длину 2 для змеи

#java #processing

#java #обработка

Вопрос:

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

Комментарии:

1. Просто подумайте, как работает цикл for в movePlayer . Сначала она выполняется с i=0 , затем i=1 , ….. Замените i в теле цикла на значение и посмотрите, что это дает.

2. Что вы имеете в виду? Не могли бы вы, пожалуйста, уточнить? С помощью этого я пытаюсь переместить текущее местоположение, которое находится с индексом 0, в индекс 1, а затем все, что было в индексе 1, в индекс 2.

Ответ №1:

Давайте посмотрим на упрощенную версию вашего цикла for в movePlayer :

 for(int i = 0; i < 3; i   )
    snakeLocationX[i   1] = snakeLocationX[i];
  

Написание этого кода без цикла дает:

 snakeLocationX[1] = snakeLocationX[0];
snakeLocationX[2] = snakeLocationX[1];
snakeLocationX[3] = snakeLocationX[2];
  

Это означает, что значение snakeLocationX[0] копируется шаг за шагом во все другие элементы массива.

Решение: Запустите цикл for с наибольшим i значением и уменьшите.