Python:简单的生活游戏实现,检查2D列表的“相邻”元素

2024-10-02 14:26:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python用2D列表创建一个简单的康威生活游戏,但我在尝试:

  1. 检查活细胞周围的3x3区域
  2. 计算另一个“活细胞”在3x3区域内的次数:

我创建的列表如下所示:

board = [
[".",".",".","O","."],
[".","O","O",".","."],
[".",".","O",".","."],
[".",".",".","O","O"],
[".",".","O","O","."]
]

其中,“.”是一个死细胞,“O”是一个活细胞

我尝试使用一个函数,它检测元素的8个相邻区域,如下所示:

def checkNeigbors():
    count = 0
    neighbors = [(0, 1), (0, -1), (1, 0), (-1, 0), (1, -1), (1, 1), (-1, -1), (-1, 1)]

我认为给出的邻居列表应该是每个元素的坐标,因此它将检测x+(邻居值),y+(邻居值)

但是,在这一点上,我不知道如何使每个“O”都需要计算3x3区域中“O”的每个其他实例,并将其添加到“count”变量中。我需要做一个for循环来读取电路板中的每一行和每一列吗


Tags: 实例函数board游戏区域元素列表for