PHP рекурсия, кажется, не пересекает все пути - PullRequest
0 голосов
/ 21 октября 2018

Предполагается, что эта программа найдет все возможные пути через лабиринт и сохранит самое дальнее расстояние, которое она получила, в глобальной переменной.Вместо этого он проходит только один путь, а затем заканчивается?Я предполагаю, что я не использую рекурсию правильно или что-то в этом роде.$ draw_co2 - это массив из 0 и 1, где 1 - это путь, а 0 - это стена.Я включил вывод из точек, собранных $ GLOBALS ['route'] поверх самого лабиринта ниже.Исходя из кода, я ожидал бы, что вся основная красная ветвь будет белой?

Я использовал else, если вместо просто else.Как упомянуто ниже, используйте else для изучения всех ветвей.

1 Ответ

0 голосов
/ 21 октября 2018

Нет проблем с рекурсией в фрагменте кода.Мое лучшее предположение состоит в том, что единственное, что может вызвать это, - $draw_co2.Я думаю, что в $draw_co2 нет пути, который может пройти рекурсия.Для тестирования я бы порекомендовал создать определенный путь в массиве $draw_co2 и передать начальные координаты в функцию рекурсии.Надеюсь, это поможет.

РЕДАКТИРОВАТЬ

Если вы измените все свои else if s только на if, это может пройти все пути.

...