Convay's Life Python
Начал знакомиться с питоном - решил реализовать простейшую версию игры "Жизнь" Конвея, но на данном этапе не могу понять, почему она работает не верно - некоторые клетки оживают, хотя соседей у них менее или более 3, а некоторые убивает, хотя соседей 2-е или трое. Код залил на гитхаб, потому что тут его было бы многовато: код.
Лично я грешу на 2 проблемы: первое это правильно ли указаны координаты(в самом начале при чтении построчно, x и y должны соответствовать осям абсцисс и ординат соответственно) а второе это проблемы с записью и чтением в вспомогательный список(new_universe), но где именно ошибка - я не знаю
Буду благодарен за любую помощь!
Ответы (1 шт):
Вы пишете новые данные в ту же самую матрицу, на основе которой вычисляете "новую вселенную", у вас universe и new_universe указывают на одну и ту же область памяти. Поэтому ваши вычисления базируются на данных, уже частично изменённых на текущей итерации и из-за этого заведомо не являются корректными.
Вам нужно явным образом копировать вашу матрицу вселенной в новый объект:
while i < k:
universe = new_universe.copy()