Я определяю классную игру с размерами n, m. Метод init создает создает две доски, по одной для каждого игрока
class game:
def __init__(self, n, m):
rows = [0 for _ in range m]
self.board1 = [rows for _ in range n]
self.board2 = [rows for _ in range n]
когда я назначаю значение для board1 [0] [0], оно также назначает то же значение для board1 [1] [0], board1 [2] [0], ... board1 [n] [0] как ну как board2 [0-n] [0]
например,
game(3,4)
game.board1[0][0] = 1
print("board 1: {}\nboard 2: {}).format(self.board1, self.board2))
возвращает
board 1: [[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0]]
board 2: [[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0]]