Рубрики
Без рубрики

Игра жизни Конвея

Что это? TL:DR-игра с нулевым игроком, которая развивается сама по себе из начальной конфигурации. Игра Жизни, известная также просто как Жизнь, представляет собой клеточный автомат, разработанный британским математиком…

Автор оригинала: ahuangJM.

TL:DR игра с нулевым игроком, которая развивается сама по себе из начальной конфигурации.

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

TL:DR умирает, когда меньше 2 соседей или больше 3 соседей; жив, когда есть 2 или 3 соседа

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

  1. Любая живая клетка с менее чем двумя живыми соседями умирает, как будто при недостаточном населении.
  2. Любая живая клетка с двумя или тремя живыми соседями живет до следующего поколения.
  3. Любая живая клетка с более чем тремя живыми соседями умирает, как будто от перенаселения.
  4. Любая мертвая клетка с ровно тремя живыми соседями становится живой клеткой, как бы размножаясь. Начальный паттерн представляет собой семя системы. Первое поколение создается путем одновременного применения вышеуказанных правил к каждой клетке семени; рождение и смерть происходят одновременно, и дискретный момент, в который это происходит, иногда называют тиком. Каждое поколение есть чистая функция предыдущего. Правила продолжают многократно применяться для создания последующих поколений.

Обобщение для N-мерных

  1. Любая живая клетка с меньшим числом живых соседей, чем X , умирает, как будто при недостаточном населении.
  2. Любая живая клетка с X или Y живыми соседями живет до следующего поколения.
  3. Любая живая клетка с более чем Y живыми соседями умирает, как бы от перенаселения.
  4. Любая мертвая клетка с точно Y живыми соседями становится живой клеткой, как бы размножаясь.

Как вы можете видеть в паттернах , продемонстрированных в Standord и/или из ваших собственных симуляций с использованием Simulation, вы можете видеть, что очень сложные паттерны могут быть сгенерированы и наблюдаться из очень простого правила. Это подразумевает, что Вселенная, в которой мы живем, также может быть основана на очень немногих фундаментальных законах, и ученые стремятся понять и найти те законы, которые управляют нашей Вселенной.

Как вы можете видеть в стандарте , 1D и 2D легко кодируются и наблюдаются, но 3D немного сложнее визуализировать, и еще многое предстоит сделать для n-мерного:

  1. Обнаружение паттернов
  2. Изучение правил и перевод на понятный язык
  3. N-Мерная визуализация
  4. Многопоточный код

Есть много способов реализовать Игру жизни Конвея. Java, C# и Python имеют отличные инструменты визуализации, и все они просты в освоении. Хотя это не очень сложный алгоритм, но эта программа может коснуться многих аспектов программирования.

  1. Википедия
  2. Стэнфорд
  3. Моделирование