康威在Python中的生命游戏

时间:2015-04-26 22:37:17

标签: python if-statement conways-game-of-life

我正在做John Conway的生命游戏,我已经尝试了很长时间才能做到这一点,但它一直给我这个错误:

if matrix[i+1][j] == 1:

IndexError: list index out of range

我不知道它有什么问题,通常m[i+1][j]可以找到我要求的具体位置。

2 个答案:

答案 0 :(得分:0)

与其他答案不同,我将假设您的问题是关于您在GoL实施中出现此错误的原因,而不是关于错误意味着什么的问题。

您没有提供有关何时发生错误的大量信息,但实施GoL的一个常见问题是如何处理边界。这在Wikipedia's GoL article中讨论。当您尝试计算边界处的邻域时,很可能会出现错误。这是一个常见的解决方案。将网格每侧延伸一个(包括顶部和底部)。调用新单元"边界单元&#34 ;;用它们来存储" neighors"那将是环形拓扑。仅针对非边界单元计算下一个状态;当你更新他们的状态时,也要将每个边界单元更新为环形"包裹"它所代表的细胞。

答案 1 :(得分:-1)

您要为最后1添加ii ts,这样您很可能会从列表的末尾掉落:

In [3]: l = [1,2]   
In [4]: l[0]
Out[4]: 1    
In [5]: l[1]
Out[5]: 2    
In [6]: l[1+1]
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-6-f4912ad93661> in <module>()
----> 1 l[1+1]

IndexError: list index out of range