Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 24, 2012 15:00:23

koast
Зарегистрирован: 2012-12-24
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает dfs

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)]
    
а-лабиринт в рамочке.
С-стена.
'.'-пустой проход
cha-список стен
Ошибок не выдает,просто некоторые пустые места не находит.

Отредактировано koast (Дек. 24, 2012 15:14:15)

Офлайн

#2 Дек. 25, 2012 05:17:36

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не работает dfs

Посмотрите на реализацию алгоритма DFS
от создателя питона
переделанный
и еще раз переделанный

может быть Вам пригодится
библиотека для работы с графами, и конкретно вот эта ее часть.



Отредактировано FishHook (Дек. 25, 2012 05:20:27)

Офлайн

#3 Дек. 25, 2012 19:07:38

koast
Зарегистрирован: 2012-12-24
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает dfs

FishHook
Посмотрите на реализацию алгоритма DFS
от создателя питона
переделанный
и еще раз переделанный

может быть Вам пригодится
библиотека для работы с графами, и конкретно вот эта ее часть.

Спасибо вам большое, но для меня желательнее понять свою ошибку. Переделывать свой граф в тот, который во всех примерах, слишком долго по времени.

Офлайн

#4 Дек. 28, 2012 15:06:56

koast
Зарегистрирован: 2012-12-24
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает dfs

Все решил. Дело было в том, что кусок двумерного массива был задан ссылками на себя.

Отредактировано koast (Дек. 28, 2012 15:07:07)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version