我一直在尝试Conways的“生命游戏”问题,因为它是学校的延伸,但我无法弄清楚如何随机化网格中的每个单元(活着,死了,以L和D表示它们)。 一些变量只在后面(开始时使用) 到目前为止,这是我的代码:
import random
import math
generations = 0
liveCellCount = 0
deadCellCount = 0
cellState = "LD"
width = 20
height = 20
grid = []
row = []
state = random.choice(cellState)
p = 1
for i in range(width):
row.append(state)
for i in range(height):
grid.append(row)
while p < 2:
for i in range(len(grid)):
print(grid[i])
p = p + 1
也忽略了我的p = 1东西,我不愿意更改它
答案 0 :(得分:0)
我看到您正在尝试随机化网格中每个单元的状态。我们发现您的代码存在以下问题。
state = random.choice(cellState)
for i in range(width):
row.append(state)
您选择了一次随机状态,然后将其重新用于网格中的每个单元格。考虑将随机选择函数放入for循环中,以便为每个单元格选择一个新的循环。
for i in range(height):
grid.append(row)
您还在网格中的每一行使用相同的列表。
这是我建议的解决方案:
import random
width = 20
height = 20
grid = []
for i in range(height):
row = []
for j in range(width):
state = random.choice("LD")
row.append(state)
grid.append(row)
# Print the grid below
请注意,将为网格中的每一行创建一个新列表。这是为了确保每一行都可以不同,这与您在整个网格中重复使用同一行对象的示例不同。
答案 1 :(得分:0)
尝试一下
import random
import math
generations = 0
liveCellCount = 0
deadCellCount = 0
cellState = "LD"
width = 20
height = 20
grid = []
row = []
state = random.choice
for i in range(width):
row.append(state(cellState))
for i in range(height):
grid.append(row)
print(grid)