/ALife

Искусственная жизнь на JS

Primary LanguageHTML

ALife - Искусcтвенная жизнь на JS


Мир игры

Мир игры представляет из себя размеченную по клеточкам плосткость со сторонами 50x100, которая завернута в бублик. На каждой клеточке находится почва, обладающая тремя характеристиками в интервале от 0 до 255 - содержанием минеральных солей, органики и воды. Слишком большое содержание минеральных солей, органики и воды делают почву засоленной, зараженной и наводненной соответственно. Атмосфера планеты состоит из углекислого газа и O2. Бублик всегда освещен в равной степени со всех сторон, а атмосфера однородна, но на внутренней части бублика больше энергии дает хемосинтез, а на внешней - фотосинтез и разложение органики.

События в мире

Также на планете-пончике происходят различные события:

  1. Дожди (случайно увеличивают количество воды в каждой клетке)
  2. Засухи (случайно уменьшают количество воды в каждой клетке)
  3. Метеоритные дожди (случайно превращают часть CO2 в O2 (не спрашивайте как), а также создают астероиды, которые уничтожают ботов, часть воды и органики на клетке, куда упали, но приносят в почву минеральные соли)
  4. Пожары (случайно превращают часть O2 в CO2 и убивают всех существ в области 3 на 3)

Боты

Боты - одноклеточные организмы, которые выживают на планете-пончике. Каждый бот имеет следущие органы чувств:

  1. Примитивное зрение - проверяет, находится перед ним пустая клетка или нет.
  2. Химическое чувство - позволяет боту узнать состав почвы под ним и перед ним.
  3. Обоняние - позволяет боту узнать состав атмосферы.
  4. Светочувствительность - позволяет боту узнать освещенность.
  5. Бот знает, сколько у него в данный момент энергии. Каждый бот может делать следущие действия за свой ход:
  6. Поворачиваться влево.
  7. Поворачиваться вправо.
  8. Двигаться вперед на 1 клетку (он не может заползать на других бактерий).
  9. Фотосинтез (преобразует воду из почвы и CO2 в энергию и O2).
  10. Хемосинтез (преобразует минеральные соли из почвы и O2 в энергию и CO2).
  11. Детритофагия (преобразует органику из почвы и O2 в энергию, воду, минеральные соли и CO2).
  12. Съесть товарища (забирает всю энергию у бота впереди себя и убивает его).
  13. Размножение (создает впереди себя свою копию с одним - двумя сломанными генами и половиной энергии). Каждый бот имеет нейросеть с 1 скрытым слоем. Входные и выходные нейроны не отличаются друг от друга, а скрытый слой имеет 3 возможных типа нейрона: с сигмоидальной активацией, пороговый и рандомный.
    Геном бота является весами всех синапсов его нейросети, типами нейронов в скрытом слое и одним геном резистентности.
    Бот имеет энергию - число от 0 до 20. Он может получать ее питаясь, а также тратить ее на размножение, вращение и движение. Каждый ход бот теряет 0.05 энергии. Слишком большое содержание O2 или CO2 в атмосфере, засоленные, зараженные и наводненные почвы также отнимают энергию, если бот к ним не резимтентен. Бот без энергии умирает.

Интерфейс

В адресной строке после знака & вы можете ввести несколько параметров планеты:

  1. c - кол-во изначальных существ - не более 5000, а лучше около 40-80
  2. s, o, w - состав почвы (минеральные соли, органика и вода) - 3 целых числа от 0 до 255
  3. o2, co2 - состав атмосферы (O2, CO2) Для начала рекомендую попробовать параметры по-умолчанию
    Важно: если организмы вымирают сразу после появления, попробуйте пару раз перезагрузить страницу - возможно просто ни один из них не был жизнеспосоным, если и это не помогает - значит вы создали аццкий пончик, где невозможно выжить. Измените параметры в адресной строке. Внизу находятся счетчики различных данных о планете - возраст, популяция и т.д.
    Вы можете выбрать отображение - красивое (сильно нагружает компьютер) или упрощенное.
    ЛКМ по боту - отображает его геном, энергию и последнее действие.
    Пробел - пауза.

Обновление

В последнем обновлении была добавлена широтная зональность.