Бывает так, что игра может перерасти в жизнь, а жизнь стать игрой.

В этой статье я расскажу:

  • О правилах игры для одного и более человек на основе клеточного автомата, подобного игре Жизнь Джона Конвея.

  • И следствиях, к чему может привести эта игра в будущем.

Правила игры

  1. Создается квадратное поле, замкнутое со всех сторон.

  2. Поле делится на равные сектора.

  3. Каждому игроку выделяется один сектор.

  4. Секторов может быть больше чем игроков.

  5. Перед стартом игроки заполняют свои сектора любым способом.

  6. Каждый игрок имеет свой цвет.

  7. Далее запускается клеточный автомат на заданное число поколений.

  8. В конце игры ведется подсчет живых клеток.

  9. Выигрывает тот, у кого их больше.

Тонкости

По правилам игры Жизнь, мертвая клетка становится живой, если имеет ровно три живых соседки. Предположим, что у нас соседи разных цветов. В этом случае необходимо определить цвет с пропорциональной вероятностью. Например, рядом стоят 2 зеленых и 1 синий, значит вероятность появления зеленого будет 2/3, а синего 1/3.

Данную вероятность необходимо строго детерминировать, чтобы одинаковая начальная расстановка приводила к одному конечному результату. Например ввести глобальный счетчик. Однако, локально все будет казаться абсолютно случайно.

Необходимо, чтобы клетки, которые статичны, постепенно умирали. Для этого нужно определить срок жизни клеток. Пусть он будет весьма продолжительный, но длительность игры должна быть заметно больше, чем срок жизни одной клетки.

Реализация

Реализовать данный автомат по принципам игры Жизнь задача довольно простая — дело нескольких часов. Однако, вся сложность и интерес в другом.

Чтобы эффективно побеждать в эту игру необходимо создать репликатор, который будет копировать себя с ошибкой, заполняя пространство. Ошибка должна давать шанс на улучшение его способности к размножению и захвату территории.

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

Попытки

Проект по созданию репликатора в игре Жизнь был создан американским математиком Биллом Госпером в 1994 году. Он запустил кампанию по сбору средств через краудфандинг, чтобы финансировать исследования по клеточным автоматам и разработать репликаторы, которые могут точно копировать самих себя.

Благодаря поддержке сообщества математиков и программистов, Госпер смог собрать необходимое количество денежных средств и разработать репликатор, способный создавать свои точные копии.

Очевидно, что для создания репликатора, который делает копию с ошибкой, дающей шанс на улучшение способности к размножению, задача значительно более сложная.

Другой автомат

Поскольку задача создания репликатора с ошибкой в игре Жизнь сложна, возможно имеет смысл идти по пути создания клеточного автомата, который специально разработан для этого:

  • Был полным по Тьюрингу (для этого достаточно реализовать универсальный логический элемент).

  • Легко генерировал репликаторы с ошибкой.

  • Понятен для наблюдения.

  • Легко вычислим и масштабируем.

Мечты

Возможно создание масштабной среды, в которой смогут зарождаться репликаторы с ошибкой, будет одним из интереснейших направлений в деятельности человека.

Мы создаем целый мир, целую вселенную в которой, при определенных условиях может появится искусственная жизнь.

Предложение

Но я предлагаю начать с самого простого. Необходимо сделать две вещи:

  1. Создать среду (арену) для игры.

  2. Принять участие в игре.

Для начала арена может быть небольшой с правилами перехода как в игре Жизнь, чтобы проводить турнир на обычном ПК:

  • Допустим, поле 900х900 клеток.

  • Делим на 9 секторов 300х300.

  • Заполнять допустимо середину сектора — квадрат 100х100 любым способом.

  • Срок жизни неподвижной клетки — 1 000 поколений.

  • Продолжительность игры: 10 000 поколений.

При таких настройках за один раз может играть до 9 участников и расчет не займет много времени.

Возможно, размер поля, срок жизни клетки, продолжительность игры или что-то еще, нужно будет скорректировать, чтобы состязание было более зрелищным и интересным для участников.

Конкурс и стипендия

Приглашаю всех желающих принять участие в конкурсе с двумя номинациями:

  1. Лучшая среда для игры.

  2. Лучший игрок.

Будет два победителя, каждый получит стипендию в размере 5 000 рублей на 12 месяцев. Если вы не являетесь студентом, то вместо стипендии возможна разовая выплата 50 000 руб. Конкурс состоится, при участии не менее 10 человек.

В дальнейшем есть интерес расширить проект, чтобы двигаться к репликатору с ошибкой в тюринг-полном клеточном автомате.

Конкурс будет проходить до конца апреля. Пока в проекте я один, поэтому будет хорошо, если кто-то поможет с организацией мероприятия в качестве ассистента.

Вопросы и заявки на участие отправляйте в Телеграм группу

Комментарии (5)


  1. RealBeria
    00.00.0000 00:00
    +5

    Есть такая игра "Бой в памяти". Идея в чем то схожая, но реализована более гибко (управляется не законами клеточного автомата, а правилами языка программирования Redcode).


    1. kt97679
      00.00.0000 00:00
      +1

      А еще можно программировать танки используя си подобный язык


  1. qw1
    00.00.0000 00:00
    +6

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


    Одна из стратегий — сделать так, чтобы со своей стороны "вылетели" определённые "снаряды", которые бы после "взрыва" уничтожили максимум клеток на территории противника (и сами бы потом умерли, чтобы не засчитывались в учёт врагу), и построить фортификационные сооружения, чтобы противостоять "снарядам".


    Чтобы развернуть по-настоящему сложные программы, поле нужно примерно 1 миллион на 1 миллион клеток.


    Но это эта игра на много порядков превышает человеческие способности ))


    1. Kodzo
      00.00.0000 00:00
      +1

      Теперь я знаю, чем займусь в свободное время)


  1. Felan
    00.00.0000 00:00

    Ну раз тут танки на C упомянули, то есть на Java — https://robocode.sourceforge.io/.


    А еще на Спекки очень давно была игра прям вообще почти точно такая же:
    Virus