field размером m × n — колония клеток: 1 — живая клетка, 0 — пустая. Соседи клетки — до восьми окружающих её клеток (по сторонам и по диагоналям); за краем поля клеток нет.
За один шаг все клетки меняются одновременно по правилам:
- живая клетка, у которой 2 или 3 живых соседа, остаётся живой, иначе гибнет;
- пустая клетка, у которой ровно 3 живых соседа, оживает, иначе остаётся пустой.
Переведите колонию на один шаг вперёд и верните новое поле.
Важно: новое состояние клетки зависит только от старого состояния соседей. Попробуйте обойтись без копии поля.field=[[0, 0, 0], [1, 1, 1], [0, 0, 0]] → [[0, 1, 0], [0, 1, 0], [0, 1, 0]]
Горизонтальная тройка становится вертикальной: [[0, 1, 0], [0, 1, 0], [0, 1, 0]]. У крайних клеток по одному живому соседу — они гибнут, у верхней и нижней средних клеток ровно три соседа — они оживают.
field=[[1, 1], [1, 1]] → [[1, 1], [1, 1]]
У каждой клетки квадрата по три живых соседа — поле не меняется.
field=[[1, 0, 1]] → [[0, 0, 0]]
У обеих живых клеток нет живых соседей — обе гибнут: [[0, 0, 0]].
field=[[0, 0, 0], [1, 1, 1], [0, 0, 0]]
[[0, 1, 0], [0, 1, 0], [0, 1, 0]]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 35 тестов на сервере, включая скрытые.