我目前正在尝试在代码中实现Conway的生命游戏,因此构建了一个根据窗口大小生成坐标的函数。
def coords_maker(num_x, num_y):
num_x += 1
num_y += 1
coords = []
for i in range (0,num_y, 1):
for n in range (0,num_x,1):
coords.append ('x'+str(n)+'y'+str(i))
return coords
然而,我想将值随机分配给结果字符串,将它们标记为alive(1)或dead(0)。然而,他们只有将字符串转换为我已知的变量名称的方法是通过dict和var(),但是,对于进一步的代码,坐标保持排序是必不可少的,因为我希望能够迭代订购商品并将光标相应地放在坐标名称上。类似的东西:
print ('\033['+X_COORD+';'+Y_COORD+'f'+ x1y5)
如果是x1y5是变量
的对应值(0或1)有没有一种方便的方法如何通过dict执行此操作或如何将字符串的名称转换为变量名称? 或者可能。如果我保留一个dict和一个列表并将坐标名称存储在列表中并将值存储在dict中?
提前谢谢! kyril
答案 0 :(得分:1)
你使用字典:
def coords_maker(num_x, num_y):
num_x += 1
num_y += 1
coords = {}
for i in range (0,num_y, 1):
for n in range (0,num_x,1):
coords['x'+str(n)+'y'+str(i)] = 0
return coords
然后使用
访问该值 coords[x][y]
并改变它:
coords[x][y] = 1
现在,当然,将坐标转换为字符串是完全没有意义的。只需使用列表清单:
def coords_maker(num_x, num_y):
num_x += 1
num_y += 1
coords = [[0]*num_x for x in range(num_y)]
return coords
我不知道你为什么在坐标上加1:
def coords_maker(num_x, num_y):
return [[0]*num_x for x in range(num_y)]