我正在做John Conway的生命游戏,我已经尝试了很长时间才能做到这一点,但它一直给我这个错误:
if matrix[i+1][j] == 1:
IndexError: list index out of range
我不知道它有什么问题,通常m[i+1][j]
可以找到我要求的具体位置。
答案 0 :(得分:0)
与其他答案不同,我将假设您的问题是关于您在GoL实施中出现此错误的原因,而不是关于错误意味着什么的问题。
您没有提供有关何时发生错误的大量信息,但实施GoL的一个常见问题是如何处理边界。这在Wikipedia's GoL article中讨论。当您尝试计算边界处的邻域时,很可能会出现错误。这是一个常见的解决方案。将网格每侧延伸一个(包括顶部和底部)。调用新单元"边界单元&#34 ;;用它们来存储" neighors"那将是环形拓扑。仅针对非边界单元计算下一个状态;当你更新他们的状态时,也要将每个边界单元更新为环形"包裹"它所代表的细胞。
答案 1 :(得分:-1)
您要为最后1
添加i
到i
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