1D N Queens Array (Python) Функция решения

1
задан philcode101 20 January 2019 в 10:29
поделиться

1 ответ

Если вы изменяете глобальную переменную из функции, вам нужно пометить ее как глобальную, в противном случае функция будет обрабатывать эту переменную как локальную. Это то, что вы получаете. Вы получаете пустой список queens в вашей функции complete. Обратите внимание, что вы можете ссылаться на глобальные (как вы делаете это в функциях printQ и solve, но если вы собираетесь изменить его (как у вас в функции complete), вы должны отметить его как global. пример того, как это сделать. Также вам не нужно помечать его как глобальный на уровне модуля (первая строка в вашем коде), он должен быть на функциональном уровне

def complete():
    global queens
    for i in range(8):
        if solve(i) == True:
            queens += [i]
        elif solve(i) == False:
            queens = queens - [i]
        else:
            return
0
ответ дан Vlad Bezden 20 January 2019 в 10:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: