2015-04-26 7 views
-1

Я делаю Игру Жизни Джона Конвея, и я пытался в течение такого долгого времени, чтобы сделать это, но он продолжает давать мне эту ошибку:Конвея жизни в Python

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

IndexError: list index out of range

Я не знаю, что в этом плохого, обычно m[i+1][j] работает для поиска конкретной позиции, о которой я прошу.

+4

вам нужно будет показать код ошибки, и что означает 'matrix'. – Anzel

+3

Вы получаете ошибку, потому что либо количество строк в вашей матрице меньше или равно «i», либо количество столбцов меньше или равно «j-1». –

+0

Я пробовал поставить валидацию для этого до статута следующим образом: while i

ответ

0

В отличие от других ответов, я буду считать, что ваш вопрос о том, почему ты получить эту ошибку в своей реализации GoL и не вопрос о том, что означает ошибка.

Вы не предоставляете много информации о том, когда возникает ошибка, но общая проблема при реализации GoL заключается в том, как обрабатывать границы. Это обсуждается в Wikipedia's GoL article. Скорее всего, вы получите свою ошибку, когда пытаетесь вычислить окрестности на границе. Вот одно общее решение. Расширьте сетку по одному с каждой стороны (включая верхнюю и нижнюю). Вызовите новые ячейки «пограничные ячейки»; использовать их для хранения состояния «соседей», которое было бы там с тороидальной топологией. Вычислить следующее состояние только для неграничных ячеек; когда вы обновляете свое состояние, также обновляйте каждую граничную ячейку на тороидально «обернутую» ячейку, которую она представляет.

-1

Вы добавляете 1 к i ц для последнего i так что вы, скорее всего, падение с конца в списке:

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 
Смежные вопросы