2048 Python游戏
作为初学者,我开始编写2048游戏。我做了一个矩阵,用0填充。然后我想写一个函数,在整个矩阵中循环,找到所有的0值。然后保存0值的坐标,然后将其替换为2或4个值。我做了一个随机变量来选择2或4。问题是,我真的不知道如何将0值的x和y坐标推送到and数组,然后读取它们2048 Python游戏,python,list,2048,Python,List,2048,作为初学者,我开始编写2048游戏。我做了一个矩阵,用0填充。然后我想写一个函数,在整个矩阵中循环,找到所有的0值。然后保存0值的坐标,然后将其替换为2或4个值。我做了一个随机变量来选择2或4。问题是,我真的不知道如何将0值的x和y坐标推送到and数组,然后读取它们 table = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] options = [] def
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]))
表=[[0,0,0,0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
选项=[]
def保存选项(i,j):
options.append([{i,j}])
返回选项
def选项读卡器和读卡器(选项):
如果len(选项)>0:
点=随机。随机(选项)
r=random.randint(0,1)
如果r>0.5:
table您可以迭代表中的行和列:
for row in table:
for element in row:
if element == 0:
# now what?
我们不知道坐标是什么
Python有一个有用的函数,名为。我们可以用与前面相同的方法进行迭代,但是我们也可以在数组中获取索引或位置
zeroes = []
for i, row in enumerate(table):
for j, element in enumerate(row):
if element == 0:
zeroes.append((i, j))
然后,我们可以设置值,例如将all设置为2
:
for i, j in zeroes:
table[i][j] = 2
你的随机代码看起来不错。{i,j}
是一个无序的集合。您可能需要一个元组
,(i,j)
。除非2048是对称的,否则我不知道。非常感谢!我要回家看看