是python的新手,我的第一个项目是手工编写tictactoe游戏。
因此,当我尝试编写“ toString”方法时,遇到了2个维数组的问题,如下所示
board = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
binit = board[:]
for x in range(3):
for y in range(3):
if int(binit[x][y]) == 0:
binit[x][y] = "_"
elif int(binit[x][y]) == 1:
binit[x][y] = "X"
else:
binit[x][y] = "O"
print(binit)
print(board)
播放时得到的输出是:
ID: board 140662640260544
ID: binit 140662640580864
board: [['X', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]
binit: [['X', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]
尽管董事会本身应该保持不变。
bint = board.copy()也不起作用。
您可以使用json
进行序列化和反序列化:
import json
binit = json.loads(json.dumps(board))
您可以使用copy.deepcopy克隆板:https://docs.python.org/2/library/copy.html