Дано
2
- начальная точка
3
- цель
1
- путь
0
- стена
Запрашивается найти путь от 2
до 3
с использованием рекурсивной функции.Однако я использовал рекурсию, так как я также использовал for
, я не уверен, что она считается рекурсивной функцией.
Я определил две функции:
buildPath(element, l)
, который ищет элемент и заменяет его на 2
, если имеет соседнее значение, содержащее 2
. clearPath(element, l)
, который ищет элемент и заменяет его на 0
, если он не связан с целевым индексом.
У меня есть следующий код:
l = [0, 0, 0, 0, 0]
[0, 2, 1, 1, 0]
[0, 1, 0, 0, 0]
[0, 1, 1, 3, 0]
[0, 0, 0, 0, 0]
def buildPath(element, l):
for i in range(len(l)):
for j in range(len(l[i])):
if element==l[i][j] and ((l[i-1][j] == 2) or (l[i+1][j] == 2) or (l[i][j-1] == 2) or (l[i][j+1] == 2)):
l[i][j] = 2
buildPath(element, l)
l[1][1] = 8
return None
def clearPath(element, l):
for i in range(len(l)):
for j in range(len(l[i])):
if element == l[i][j] and (l[i-1][j] + l[i+1][j] + l[i][j-1] + l[i][j+1] <= 2):
l[i][j] = 0
clearPath(element, l)
buildPath(1, l)
clearPath(2, l)
Вот как выглядит модифицированный массив:
[0, 0, 0, 0, 0]
[0, 8, 2, 0, 0]
[0, 2, 0, 0, 0]
[0, 2, 2, 3, 0]
[0, 0, 0, 0, 0]
Как превратить это в чистыйрекурсивная функция?