【发布时间】:2020-02-12 02:59:03
【问题描述】:
作为初学者,我开始编写 2048 游戏。我制作了矩阵并用0填充它。然后我想写一个循环遍历整个矩阵并找到所有 0 值的函数。然后保存 0 值的坐标,稍后用 2 或 4 值替换它们。我做了一个随机变量来选择 2 或 4 之间。问题是,我真的不知道如何将 0 值的 x 和 y 坐标推送到数组然后读取它们。
table = [[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
options = []
def saveOptions(i, j):
options.append([{i , j}])
return options
def optionsReaderandAdder(options):
if len(options) > 0:
spot = random.random(options)
r = random.randint(0, 1)
if r > 0.5:
table <-------- THIS IS THE LINE WHERE I WOULD LIKE TO CHANGE THE VALUE OF THE 0 TO 2 OR 4.
def optionsFinder():
for i in range(4):
for j in range(4):
if table[i][j] == 0:
saveOptions(i, j)
optionsReaderandAdder(options)
addNumber()
print('\n'.join([''.join(['{:4}'.format(item) for item in row])
for row in table]))
【问题讨论】:
-
{i , j}是一个无序的set。您可能想要tuple、(i , j)。除非 2048 是对称的,否则我不知道。