Игра «Жизнь» подвергает сомнению наши предвзятые представления о том, как работает этот мир, поскольку она показывает, как простой набор локальных правил может генерировать невероятно сложное общее поведение. При взгляде на такую идеально интегрированную систему, как решето Эратосфена, удивляет то, что каждая клетка взаимодействует всего с восемью соседними клетками.
Игра «Жизнь» демонстрирует также существование разных реальностей на разных уровнях игры. Решето Эратосфена — это конфигурация, разработанная на основе физических свойств глайдерных ружей с использованием технологии столкновений и космических кораблей. Однако на более детальном уровне таких вещей, как «столкновение» или «космический корабль», нет. Есть лишь неподвижные клетки, которые могут быть либо «живыми», либо «мертвыми».
По мере создания все более сложных фигур возникает вопрос: каков предел того, что может сделать конфигурация в игре «Жизнь»? Да буквально все, на что способен ваш ПК, планшет или смартфон. Если задача выполнима с помощью компьютера, тогда это можно сделать и посредством конфигурации в игре «Жизнь».
Конвей доказал истинность этого утверждения, продемонстрировав, что можно создать компьютер «Жизни», другими словами — исходную конфигурацию живых клеток, имитирующую внутреннюю схему компьютера. Вам придется поверить мне на слово (или прочитать книгу по информатике), но внутренняя схема компьютера на базовом уровне состоит из следующих компонентов: проводники, логические элементы и регистр памяти. Генератор тактовых импульсов порождает электронные импульсы, представляющие двоичные числа. Наличие импульса — это 1, а его отсутствие — 0. Конвей понял, что глайдеры могут выполнять функции импульсов, передающихся по проводникам. Следовательно, поток глайдеров может представить любое число, состоящее из нолей и единиц, как показано на рисунке ниже. Поскольку глайдеры двигаются по диагонали, я разместил сетку под углом 45 градусов.
Поток глайдеров
Конвей разработал логический элемент простейшего типа, выполняющий операцию НЕ (операцию отрицания)[183]. Логический элемент — это устройство, имеющее несколько входов и выходов. У логического элемента, выполняющего операцию НЕ, только один вход и один выход. Сигнал на выходе противоположен сигналу на входе: он меняется с 1 на 0 и с 0 на 1. Следовательно, логический элемент отрицания в игре «Жизнь» должен превратить наличие глайдера во входящем потоке в его отсутствие в исходящем потоке и наоборот. Конвей понял, что эту функцию может выполнить стратегически правильно размещенное глайдерное ружье, как показано на рисунке ниже. Входящий поток перемещается горизонтально, слева направо. Глайдерное ружье стреляет по глайдерам вертикально вниз. Если во входящем потоке появляется глайдер, его уничтожает глайдер, порожденный ружьем. Но если во входящем потоке глайдера нет, глайдер из ружья проходит невредимым, поскольку ему не с чем сталкиваться. Таким образом, исходящий поток содержит 1, если входящий поток содержит 0, и 0 — если 1. Это и есть логический элемент, выполняющий операцию НЕ. Исходящий поток находится под прямым углом к входящему потоку, но это не имеет значения, так как мы можем изменить направление потока в дальнейшем в случае необходимости.