Мне нужна помощь.
Я постараюсь объяснить как можно лучше.
Допустим, у меня есть двумерная сетка, которая является моим "миром".
Сетка выглядит так:
Серые квадраты - это трава.
Зеленые квадраты - это дороги.
Оранжевые квадраты пустынны.
Синий квадрат посередине - моя машина. У моей машины предел дальности 5 квадратов. Я хочу найти и выделить ВСЕ квадраты, которых я могу достичь с максимальным диапазоном или меньше.
Проезд через серый квадрат стоит 1 диапазон. Ничего фантастического. Тем не мение,
Проезд через зеленый квадрат дает вам диапазон +0,5. Это означает, что если первые 2 квадрата, через которые вы проезжаете, зеленые, ваш максимальный диапазон внезапно равен 6.
Проезжая через оранжевый квадрат, вы получаете штраф -0,5 к дистанции. Это означает, что если первые 2 квадрата, через которые вы проезжаете, оранжевого цвета, максимальный диапазон составляет только 4.
Так что, в основном, проезд до квадрата стоит вам 1 диапазон, но в зависимости от квадрата он может дать вам дополнительный диапазон или меньший диапазон.
Разведка всех путей с учетом бонусов. Сделал бы самый внешний вид моей машины таким:
Так что да, я хочу найти способ найти все квадраты, отмеченные черными рамками, и все внутри них. Так что все квадраты в моем максимальном диапазоне подсвечиваются.
Длинный вопрос, но как мне этого добиться?
Сначала я посмотрел в ширину и глубину и т. Д., Но, поскольку я могу пройти несколько маршрутов через один и тот же квадрат, я не могу пометить его как "посещенный" в первый раз, а затем никогда не вернусь к нему?
Помощь по этому вопросу была бы очень признательна.
Спасибо, что прочитали все здесь.
/ E