TL:DR игра с нулевым игроком, которая развивается сама по себе из начальной конфигурации.
Игра жизни, также известная просто как Жизнь, представляет собой клеточный автомат, разработанный британским математиком Джоном Хортоном Конвеем в 1970 году. Игра-это игра с нулевым игроком, то есть ее эволюция определяется ее начальным состоянием, не требующим дальнейшего ввода. Человек взаимодействует с Игрой Жизни, создавая начальную конфигурацию и наблюдая, как она развивается, или, для продвинутых игроков, создавая паттерны с определенными свойствами.
TL:DR умирает, когда меньше 2 соседей или больше 3 соседей; жив, когда есть 2 или 3 соседа
Вселенная Игры Жизни представляет собой бесконечную двумерную ортогональную сетку квадратных ячеек, каждая из которых находится в одном из двух возможных состояний, живом или мертвом (или населенном и ненаселенном соответственно). Каждая клетка взаимодействует со своими восемью соседями-соседними по горизонтали, вертикали или диагонали. На каждом шаге во времени происходят следующие переходы:
- Любая живая клетка с менее чем двумя живыми соседями умирает, как будто при недостаточном населении.
- Любая живая клетка с двумя или тремя живыми соседями живет до следующего поколения.
- Любая живая клетка с более чем тремя живыми соседями умирает, как будто от перенаселения.
- Любая мертвая клетка с ровно тремя живыми соседями становится живой клеткой, как бы размножаясь. Начальный паттерн представляет собой семя системы. Первое поколение создается путем одновременного применения вышеуказанных правил к каждой клетке семени; рождение и смерть происходят одновременно, и дискретный момент, в который это происходит, иногда называют тиком. Каждое поколение есть чистая функция предыдущего. Правила продолжают многократно применяться для создания последующих поколений.
Обобщение для N-мерных
- Любая живая клетка с меньшим числом живых соседей, чем X , умирает, как будто при недостаточном населении.
- Любая живая клетка с X или Y живыми соседями живет до следующего поколения.
- Любая живая клетка с более чем Y живыми соседями умирает, как бы от перенаселения.
- Любая мертвая клетка с точно Y живыми соседями становится живой клеткой, как бы размножаясь.
Как вы можете видеть в паттернах , продемонстрированных в Standord и/или из ваших собственных симуляций с использованием Simulation, вы можете видеть, что очень сложные паттерны могут быть сгенерированы и наблюдаться из очень простого правила. Это подразумевает, что Вселенная, в которой мы живем, также может быть основана на очень немногих фундаментальных законах, и ученые стремятся понять и найти те законы, которые управляют нашей Вселенной.
Как вы можете видеть в стандарте , 1D и 2D легко кодируются и наблюдаются, но 3D немного сложнее визуализировать, и еще многое предстоит сделать для n-мерного:
- Обнаружение паттернов
- Изучение правил и перевод на понятный язык
- N-Мерная визуализация
- Многопоточный код
Есть много способов реализовать Игру жизни Конвея. Java, C# и Python имеют отличные инструменты визуализации, и все они просты в освоении. Хотя это не очень сложный алгоритм, но эта программа может коснуться многих аспектов программирования.