0

我目前正在尝试在代码中实现康威的生命游戏,因此构建了一个根据窗口大小生成坐标的函数。

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

但是,我想为结果字符串随机分配值,以将它们标记为活动 (1) 或死 (0)。然而,他们将字符串转换为我知道的变量名的唯一方法是通过 dict 和 var(),但是,对于进一步的代码来说,坐标保持排序是必不可少的,因为我希望能够遍历订购项目并将光标相应地放在坐标名称上。就像是:

print ('\033['+X_COORD+';'+Y_COORD+'f'+ x1y5) 

如果例如 x1y5 是变量的对应值(0 或 1)

是否有一种方便的方法可以通过 dict 执行此操作,或者如何将字符串的名称转换为变量名称?或者可能。如果我保留一个字典和一个列表并将坐标名称存储在列表中并将值存储在字典中?

先感谢您!基里尔

4

1 回答 1

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)]
于 2012-06-20T15:28:08.983 回答