Модель "Жизнь"

Смысл: Есть некое поле с размерами 100x100 клеточек... Впрочем все это вы, вероятно, уже читали еще на самом стеке (вот вам ссылочка на всякий случай), напишу что-нибудь новенькое.

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

У каждого вируса есть три основных характеристики - токсичность, скорость размножения и живучесть:

  • Токсичность - шанс отравить соседей не "родных" данному микроорганизму.
  • Скорость размножения - шанс занять пустую соседнюю ячейку еще одним "родным" экземпляром микроорганизма.
  • Живучесть - повышает шансы не умереть в тесноте и выжить при отравлении чужим микроорганизмом.

Происходящие на поле процессы квантованы на "ходы", каждый ход состоит из нескольких этапов:

  • Этап отравления - каждый экземпляр микроорганизмов населяющих рабочее поле пытается отравить всех недружественных ему соседей. Если его токсичность окажется выше случайного числа(100) (Здесь и далее число в скобках является верхней границей случайного числа.) , то отравление удалось, однако у отравляемого микроорганизма есть шанс выжить если его живучесть окажется выше случайного числа(100).
  • Этап проверки на выживаемость - живучесть каждого экземпляра микроорганизма сравнивается со случайным числом(5) плюс случайное число(10) за каждого соседа, если живучесть оказалась меньше, то экземпляр микроорганизма погибает.
  • Этап размножения - для каждого живущего экземпляра проверяется следующее условие; если скорость его размножения превысит случайное число(100) и будет хоть одна свободная соседняя клетка, то она будет населена этим типом микроорганизмов (клетка для заселения определяется случайным образом).

Теперь инструкция по работе:

  1. Счетчик различных типов микроорганизмов, пока нет ни одного микроорганизма элементы управления со 2 по 9 недоступны.
  2. Выбор активного микроорганизма.
  3. Цвет колонии.
  4. Изменение токсичности. (Для достижения некоторого баланса сумма всех параметров для каждого типа микроорганизмов не может превышать 100.)
  5. Изменение скорости размножения.
  6. Изменение живучести.
  7. Гистограмма, показывающая соотношение популяций всех существующих типов микроорганизмов.
  8. Размер кисти, используется для заселения колоний состоящих более чем из одного экземпляра.
  9. Регулятор скорости работы программы.
  10. Рабочее поле, вместимостью 2500 клеток, при щелчке на нем заселяются микроорганизмы выбранные в элементе (2).

Работа начинается с добавления нового вируса(1), затем, кликая в нужных местах, его экземпляры вносятся на рабочее поле(10), при желании можно поменять некоторые параметры(4,5,6), затем кнопка старт - процесс пошел. Добавлять, удалять и изменять вирусы можно прямо на ходу.
В журнале фиксируются происходящие на поле события и могут быть выставлены фильтры для различных типов этих событий.

Все это дело можно скачать (228,3 КБ) и обсудить.



А вот и мое секретное место, тут я храню рекламу...





Хостинг от uCoz