You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现生命游戏(Game of Life)规则检查函数异常求助

Python生命游戏规则检查函数异常排查建议

问题概述

我在用Python实现**生命游戏(Game of Life)**时遇到问题:用于验证游戏3条核心规则的自定义函数工作异常。使用两个仅包含0和1的列表作为测试用例,原本3个存活细胞(值为1的点)应生成指定输出图案,但实际结果与预期不符。

核心排查方向

1. 邻居计数函数(near)常见错误

  • 边界细胞的邻居统计错误:边缘、角落的细胞邻居数量不足8个,易出现索引越界或漏统计/多统计情况。
  • 误将自身计入邻居:统计邻居时需排除细胞本身位置,遍历周围8个方向时要跳过当前坐标。
  • 方向遍历不全:确保覆盖上下左右、四个对角线共8个方向,不要遗漏任何一个方向。

2. 更新函数(upd)规则实现偏差

生命游戏核心规则:

  1. 存活细胞周围有2或3个存活邻居,保持存活;
  2. 存活细胞周围存活邻居少于2或多于3个,死亡;
  3. 死亡细胞周围恰好有3个存活邻居,复活。

检查upd函数是否严格遵循规则:

  • 是否混淆“存活转死亡”和“死亡转存活”的条件;
  • 是否直接修改原数组导致后续计算使用已更新的值(正确做法是基于原数组生成新结果数组,禁止原地修改)。

3. 测试用例与日志分析

  • 打印每次迭代的原数组、邻居计数结果、更新后数组,对比每一步是否符合规则;
  • 针对3个存活细胞的测试用例,手动计算预期邻居数和下一步状态,与程序输出逐一比对,定位具体出错的细胞计算逻辑。

代码调试建议

若能提供具体代码和循环日志,可更精准定位问题,示例代码贴法如下:

# 你的near函数代码
def near(grid, x, y):
    # 函数实现
    pass

# 你的upd函数代码
def upd(grid):
    # 函数实现
    pass

内容的提问来源于stack exchange,提问作者sndmndss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 20:55:10