Форум сайта python.su
0
Dfs для лабиринта .
def dfs(i,j,num): global a; global cha; print (i,j) a[i][j][1]=1 if a[i+1][j][0]=='.' and a[i+1][j][1]!=1:dfs(i+1,j,1) if a[i+1][j][0]=='C':cha+=[(i+1,j)] if a[i-1][j][0]=='.' and a[i-1][j][1]!=1:dfs(i-1,j,1) if a[i-1][j][0]=='C':cha+=[(i-1,j)] if a[i][j+1][0]=='.' and a[i][j+1][1]!=1:dfs(i,j+1,1) if a[i][j+1][0]=='C':cha+=[(i,j+1)] if a[i][j-1][0]=='.' and a[i][j-1][1]!=1:dfs(i,j-1,1) if a[i][j-1][0]=='C':cha+=[(i,j-1)]
Отредактировано koast (Дек. 24, 2012 15:14:15)
Офлайн
568
Посмотрите на реализацию алгоритма DFS
от создателя питона
переделанный
и еще раз переделанный
может быть Вам пригодится
библиотека для работы с графами, и конкретно вот эта ее часть.
Отредактировано FishHook (Дек. 25, 2012 05:20:27)
Офлайн
0
FishHookСпасибо вам большое, но для меня желательнее понять свою ошибку. Переделывать свой граф в тот, который во всех примерах, слишком долго по времени.
Посмотрите на реализацию алгоритма DFS
от создателя питона
переделанный
и еще раз переделанный
может быть Вам пригодится
библиотека для работы с графами, и конкретно вот эта ее часть.
Офлайн
0
Все решил. Дело было в том, что кусок двумерного массива был задан ссылками на себя.
Отредактировано koast (Дек. 28, 2012 15:07:07)
Офлайн