Игра «Жизнь»

По заданным правилам, выводить на экран состояние «вселенной» в каждом поколении до конца игры. Начальное состояние (первое поколение) может генерироваться случайным образом или задаваться в коде программы (см. пример). 

Правила

Ограничения:

10 < n <30

Пример:

размер вселенной «вселенной»
n  = 10
# состояние «вселенной» в начале игры — первое поколение
universe = [
[0,0,0,0,0,0,0,0,0,0],
[0,1,0,0,0,0,0,0,0,0],
[0,0,1,0,0,0,0,0,0,0],
[1,1,1,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
]
# вывод поколения на экран
print(*universe, sep="\n")