Я работаю над игрой со змеями (Nibbles в Linux), в которую играют на поле 60 * 60, где четыре змеи соревнуются за случайно расположенное яблоко.
Я реализовал движение своей змеи с помощью алгоритма A* (A star).
Моя проблема заключается в следующем:
Когда мой счет больше, чем у других змей, я хочу, чтобы другие змеи не ели яблоки. Итак, когда я буду ближайшей змеей к яблоку, я хочу двигаться по замкнутому прямоугольному пути.
Вы можете увидеть, что я имею в виду на этом изображении:
(Я зеленый, а красная точка — моя голова.)
В моей программе есть способ сделать это с помощью алгоритма A*: setGoal(x,y);
.
Моя проблема в том, что когда я нахожу замкнутый (или приблизительно замкнутый) прямоугольник, мне нужно идти за своим хвостом до конца игры. Поэтому, пожалуйста, помогите мне заставить этот прямоугольный путь работать.