python - Conway 在 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,应该是 width-1 和 height-1。哎呀。
推荐阅读
- apache-kafka-connect - Kafka Connect 没有模式,只有 JSON
- javascript - 音频播放器 - 未捕获的 TypeError:document.getElementbyId 不是函数
- javascript - 如何有效地从 JS ArrayBuffer 读取结构(浏览器)?
- node.js - 未安装 Gulp
- tensorflow - 我是否需要将 tf.compat.v1.disable_eager_execution() 添加到 export_inference_graph.py 以将 tf.train.Checkpoint 转换为 SavedModel?
- mfc - 在 CBCGPEditCtrl (BCG, MFC) 中调整大小时出现残像问题
- r - 在 R 中下载、绘制地图和提取数据
- database - 如何生成适合我的房间方案的数据库?
- inheritance - 如何在c ++中创建继承的复制构造函数,参数中有一个基类对象
- c++ - 无法弄清楚如何从点云库初始化 SampleConsensusModelNormalPlane