Хотел предложить один способ, но он разрешает стрелку из клетки 3.0 в 2.1
Так что надо ещё подумать.
Добавлено через 4 минуты
А хотя это ж и не проблема. Цикла то не будет.
Короче вот:
можно пометить все клетки нулями и клетку с источником в единицу. Потому клетку в которую сделан первый шаг поставить в двойку и так дальше. Таким образом число в клетке будет на единицу больше, чем количество шагов нужное, чтоб туда пройти (за исключением нуля)
Во первых при расстановке менять номер можно только если текущий меньше, чем тот, что там стоял (это если хочется лабиринт сделать и зафигачить там поиск крадчайшего пути. Для твоей задачи достаточно просто проверки на ноль)
А если есть ещё и стрелки, то правильными считать только те, у которых начало стрелки на единицу меньше конца стрелки. Остальные не правильные.
Если хочется сделать затухание энергии, то можно начинать не с единицы, а с максимальной дальности распространения энергии, и отнимать по единице.
__________________
Богат не тот у кого больше, а тот, кто нуждается в меньшем.
|