我有一个相当具体的问题:
我想使用\033[
语法在特定位置打印出字符。这就是下面的代码应该做的:(字典cells
具有相同的键,coords
但具有'*'
或'-'
作为值。)
coords = {'x'+str(x)+'y'+str(y) : (x,y) for x,y, in itertools.product(range(60), range(20))}
for key, value in coords.items():
char = cells[key]
x,y = value
HORIZ=str(x)
VERT=str(y)
char = str(char)
print('\033['+VERT+';'+HORIZ+'f'+char)
但是,我注意到,如果我将它放入一个无限的 while 循环中,它并不总是在相同的位置打印相同的字符。只有轻微的变化,但它会删除一些并在一些循环后将它们放回原处。我已经用列表试过了,它似乎表现得很好,所以我倾向于认为它与字典有关,但我不知道它可能是什么。您可以在此处的控制台中看到问题:SharedConsole。我很高兴收到有关此问题的每个提示。
关于一个相关主题:打印后,应该对cells
dict的值进行一些更改,但由于我不知道的原因,只执行了前两个规则,其余规则被忽略。规则应测试单元周围有多少邻居(位于 中population
)并应用相应的规则。在我的实现中,我有某种奇怪的肿瘤生长(这不应该发生,好像周围有超过三个细胞应该死亡)(参见FreakingTumor):
if cells_copy [coord] == '-':
if population == 3:
cells [coord] = '*'
if cells_copy [coord] == '*':
if population > 3:
cells [coord] = '-'
elif population <= 1:
cells [coord] = '-'
elif population == 2 or 3:
cells [coord] = '*'
population
我多次检查了这个变量,所以我很确定这不是问题。我为缓慢的控制台感到抱歉。
提前致谢!基里尔