彼得诺维格的生命游戏

时间:2017-09-27 19:51:07

标签: python optimization conways-game-of-life

我正在看这段代码 Peter Norvig's Game of Life implementation 当我注意到这一点时:

def next_generation(world):
"The set of live cells in the next generation."
possible_cells = counts = neighbor_counts(world)
return {cell for cell in possible_cells
        if (counts[cell] == 3) 
        or (counts[cell] == 2 and cell in world)}

使用counts代替possible_cells的原因是什么?

1 个答案:

答案 0 :(得分:3)

Norvig解释in the comments(紧接在IPython单元格In [1]中的代码上方):

  

请注意,在next_generation中,neighbor_counts使用了两种方式,所以为了清晰起见,我决定使用两个不同的名称:possible_cells用于迭代可能存在的所有单元格,并且counts用于检查单元格是否具有正确数量的邻居。