2D списки редактируются, когда вы вызываете модифицирующую функцию внутри оператора логики if? - PullRequest
0 голосов
/ 13 сентября 2018

Название вопроса может быть трудно понять. Но давайте предположим, что у меня есть список 2D 8x8, который называется chessboard:

chessboard = [[0 for x in range(n)]for y in range(n)]

И у меня есть функция, которая добавляет фигуру коня к определенному индексу.

def add_white_knight(chessboard, a, b):
    chessboard[a][b] = 1
    return chessboard

И у меня есть функция с именем attack_configuration, которая только проверяет, удовлетворяет ли конкретная конфигурация платы некоторым конкретным правилам.

Итак, я хочу перед тем, как добавить кусок на мою доску, проверить, удовлетворяет ли он требуемой конфигурации.

Моя попытка была сделать

if(attack_configuration(add_black_knight(chessboard, i, j))):
    chessboard = add_black_knight(chessboard, i, j)

Но я понял, что это не удалось, потому что chessboard уже редактируется внутри оператора if. Что может быть практическим решением этой крошечной проблемы?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...