- PVSM.RU - https://www.pvsm.ru -

Муравей Лэнгтона на JS и Canvas

Прочитав здесь пост об этой замечательной зверушке (wiki) [1] я подумал, что будет интересно его реализовать и за вечер написал его на js+canvas.
Заодно чтобы было не скучно добавил ему соседей, получилось 5 цветовых популяций и ограниченное поле, которое породило граничные узоры.

Ну был бы муравей и был, но сегодня запустив его я поймал очень интересное поведение, желтая популяция в какой то момент начала методично избавляться от плодов деятельности розовой и при этом не оставлять следы своей деятельности, меня это заинтересовало и я потратил еще пару минут наблюдая за полем, желтая популяция полностью уничтожила стартовую локацию розовых, затем полностью само уничтожилась и начала строить дивный новый мир с «0», т.е. с 1 желтого пикселя.

Начальная позиция желтых по центру поля, а захваченная и заново отстроенная территория это оставшийся желтый блок

Муравей Лэнгтона на JS и Canvas

Я предполагаю что это связанно с тем что каждая популяция живет в собственном setInterval() и именно это было отправной точкой для создания данной комбинации и далеко не каждый раз такое поведение можно будет увидеть.

Хотелось бы услышать комментарии причины данного явления и способы его повторения.

Код и demoДемонстрация http://wrewolf.github.io/LangtonsAntJS/ [2]

Поймал еще раз поведение

Начало экспансии
Муравей Лэнгтона на JS и Canvas

Захватываем стан врага
Муравей Лэнгтона на JS и Canvas

Враг повержен
Муравей Лэнгтона на JS и Canvas

Мечта нигилиста почти сбылась
Муравей Лэнгтона на JS и Canvas

Уже строим новый дивный мир
Муравей Лэнгтона на JS и Canvas

Ну и выход в «тираж»
Муравей Лэнгтона на JS и Canvas

П.С.

С удовольствием выслушаю варианты по улучшению качества жизни данных насекомых.

UPD.
Обновил картинки.

Автор: wrewolf

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/62852

Ссылки в тексте:

[1] зверушке (wiki): http://ru.wikipedia.org/wiki/%D0%9C%D1%83%D1%80%D0%B0%D0%B2%D0%B5%D0%B9_%D0%9B%D1%8D%D0%BD%D0%B3%D1%82%D0%BE%D0%BD%D0%B0

[2] http://wrewolf.github.io/LangtonsAntJS/: http://wrewolf.github.io/LangtonsAntJS/

[3] Источник: http://habrahabr.ru/post/226957/