Впервые я услышал об игре Жизнь через канал Дэниэл Шиффман на YouTube. Я действительно не понял, что это было, и я действительно не дал времени, чтобы на самом деле увидеть, что это было. Некоторое время это дремало в моей памяти. Этот период покоя закончился, когда YouTube порекомендовал еще одно видео, связанное с игрой в жизнь. Именно тогда я действительно начал серьезно относиться к Игре Жизни.

Что такое игра жизни?

Ну, Игра Жизни — это то, что некоторые назвали бы клеточным автоматом. Теоретически клеточный автомат обычно представляет собой бесконечную двумерную сетку, состоящую из ячеек. Каждая ячейка имеет так называемое состояние. Состоянием может быть что угодно, а в случае Игры Жизни это либо живое, либо мертвое. В игре «Жизнь» состояние каждой клетки регулируется особыми правилами, относящимися к количеству живых или мертвых соседей (в случае с «Игрой жизни» соседями являются ячейки: вверху, внизу, влево, вправо, вверху справа, вверху слева, внизу справа и внизу слева). Ладно, думаю схема не помешала бы.

Следует помнить: состояние каждой ячейки обновляется через каждую дискретную единицу времени, и после этого мы достигаем нового поколения ячеек. Начальная конфигурация (или поколение 0) назначается нами. Это будет актуально позже.

Правила

Хорошая вещь в Игре Жизни и клеточных автоматах в целом заключается в том, что сложность возникает из простых правил, и что еще лучше, мы можем использовать это для написания программы, чтобы показать нам, что произойдет при определенных правилах. . Для начала давайте рассмотрим правила Игры Жизни:

  1. Если ячейка жива и у нее меньше двух живых соседей, она умирает.
  2. Если клетка жива и у нее есть 3 или 2 живых соседа, то она выживает.
  3. Если ячейка жива и имеет более 3 соседей, она умирает.
  4. Если ячейка мертва и имеет 3 соседей, то она становится живой.

Обратите внимание, как эти правила напоминают то, как живем мы и другие организмы. Например, если в районе слишком много людей, то они, вероятно, умрут от перенаселения; а если людей всего несколько, то они, наверное, столько не размножатся и вымрут от малочисленности. Однако, если в районе есть нужное количество людей и нужное количество ресурсов, они выживут. Название «Игра жизни» больше не звучит драматично или недосягаемо.

Воссоздать игру жизни?

Я попытаюсь воссоздать Игру Жизни в Processing.py, фреймворке Python. Если вы смотрели некоторые видео Дэниела Шиффмана, вы, вероятно, имеете представление о том, что это такое. Если нет, то единственное, что вам нужно знать, это то, что этот конкретный фреймворк позволяет пользователю обрабатывать изображения и рисовать фигуры. Моя попытка реализовать Игру Жизни — это то, чем я собираюсь поделиться в следующей статье.