def way_tuda(str, stolb, current, l):
t = l[str][stolb]
# down
if (str < 5) and (l[str + 1][stolb] == 0):
l[str + 1][stolb] = current + 1
way_tuda(str + 1, stolb, current + 1, l)
# left
if (stolb>0) and (l[str][stolb-1] == 0):
l[str][stolb-1] = current+1
way_tuda(str, stolb-1, current+1, l)
# RIGHT
if (stolb<5) and (l[str][stolb+1] == 0):
l[str][stolb+1] = current + 1
way_tuda(str, stolb+1, current+1, l)
# high
if (str>0) and (l[str-1][stolb] == 0):
l[str-1][stolb] = current + 1
way_tuda(str-1, stolb, current+1, l)
return(l[5][5])
def way_obratno(sstr,stol,current,l,res):
t=l[sstr][stol]
if (t==1):
return res
#лево
if (stol>0) and (l[sstr][stol-1]==current-1):
res='вправо '+res
way_obratno(sstr,stol-1,current-1,l,str(res))
#право
if (stol<5) and (l[sstr][stol+1]==current-1):
res='влево '+res
way_obratno(sstr,stol+1,current-1,l,str(res))
#низ
if (sstr<5) and (l[sstr+1][stol]==current-1):
res='вверх '+res
way_obratno(sstr+1,stol,current-1,l,str(res))
#верх
if (sstr>0) and (l[sstr-1][stol]==current-1):
res='вниз '+res
way_obratno(sstr-1,stol,current-1,l,str(res))
a = [[0, -1, 0, 0, 0, 0], [0, 0, 0, -1, 0, -1], [0, -1, 0, -1, 0, 0], [0, -1, -1, -1, -1, 0], [0, 0, 0, -1, 0, 0], [1, -1, 0, -1, 0, 0]]
print(way_tuda(5, 0, 1, a))
print(way_obratno(5,5,a[5][5],a,' '))
В функции way_obratno должна возвратиться эта строка "вверх вверх вверх вверх вправо вправо вверх вправо вправо вниз вниз вправо вниз вниз вниз", но возвращается none
Вообще эта программа находит выход из лабиринта и обранто