Conway's Game of Life in Python 在应该是死区的地方生成随机的长线



决定尝试在Python中实现Conway的《生命的游戏》。不是要一个特别有效的实现或任何东西,只是想要一些有效的东西。我的棋盘是一个二维列表,每个单元格都有一个1或0来表示活着/死了。我现在正在随机生成种子;我稍后再喂种子。

我的完整代码可以在GitHub上找到。

问题是,我的《生命游戏》有时会在本应死亡的地方产生长长的活细胞。

示例:到目前为止看起来很正常,但是,下一代,突然排起了长队。

这是我检查活细胞的代码(我知道,远非最佳,可以通过mod改进(:

def alive(board, y, x):
neighbors = 0
left = x - 1 if x > 0 else 9
right = x + 1 if x < 9 else 0
up = y - 1 if y > 0 else 9
down = y + 1 if y < 9 else 0
neighbors += board[up][left] + board[y][left] + board[down][left] + board[up][x] + board[down][x] + board[up][right] + board[y][right] + board[down][right]
return 1 if (board[y][x] == 0 and neighbors == 3) or (board[y][x] == 1 and (neighbors == 2 or neighbors == 3)) else 0

我的逻辑对我来说很有道理,但我显然遗漏了一些东西。我以为这可能是因为主循环运行得太快,但我试着增加睡眠时间,但没有改变。

忘记了我从硬编码的宽度和高度切换到了变量;而不是9应该是宽度-1和高度-1。哇。

最新更新