Задача 15: Игра в жизнь

Напишите определение функции gameOfLife, которая принимает матрицу board размера m x n. Эта матрица представляет текущую конфигурацию клеточного автомата "Игра Жизнь". Каждая клетка может находиться в одном из двух состояний: живая (обозначается как 1) или мёртвая (обозначается как 0). Функция должна обновить матрицу board в соответствии с правилами игры, чтобы она отразила её следующее состояние. Возвращать ничего не нужно.

Матрица board обновляется по следующим правилам:

  1. Любая живая клетка с менее чем двумя живыми соседями умирает (как при недостатке населения).
  2. Любая живая клетка с двумя или тремя живыми соседями остаётся живой для следующего поколения.
  3. Любая живая клетка с более чем тремя живыми соседями умирает (как при перенаселении).
  4. Любая мёртвая клетка с ровно тремя живыми соседями становится живой (как при размножении).

Соседи клетки — это восемь клеток, прилегающих к ней по горизонтали, вертикали и диагонали.

Примеры

Пример 1:

Ввод:

board = [[0, 1, 0], 
         [0, 0, 1], 
         [1, 1, 1], 
         [0, 0, 0]]

Вывод:

[[0, 0, 0], 
 [1, 0, 1], 
 [0, 1, 1], 
 [0, 1, 0]]

Пример 2:

Ввод:

board = [[1, 1], 
         [1, 0]]

Вывод:

[[1, 1], 
 [1, 1]]

0

Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии