Модель "Жизнь"
Смысл: Есть некое поле с размерами 100x100 клеточек...
Впрочем все это вы, вероятно, уже читали еще на самом стеке (вот вам ссылочка
на всякий случай), напишу что-нибудь новенькое.
Изначально целью написания программы было моделирование внутривидовой и межвидовой конкуренции,
но потом я решил на это забить и дописать ее просто для удовольствия, глядишь и вам интересно будет.
Для начала изложу механизмы действия немного подробнее.
У каждого вируса есть три основных характеристики - токсичность, скорость размножения и живучесть:
- Токсичность - шанс отравить соседей не "родных" данному микроорганизму.
- Скорость размножения - шанс занять пустую соседнюю ячейку еще одним "родным" экземпляром микроорганизма.
- Живучесть - повышает шансы не умереть в тесноте и выжить при отравлении чужим микроорганизмом.
Происходящие на поле процессы квантованы на "ходы", каждый ход состоит из нескольких этапов:
- Этап отравления - каждый экземпляр микроорганизмов населяющих рабочее поле пытается отравить всех недружественных ему соседей. Если его токсичность окажется выше случайного числа(100) (Здесь и далее число в скобках является верхней границей случайного числа.) , то отравление удалось, однако у отравляемого микроорганизма есть шанс выжить если его живучесть окажется выше случайного числа(100).
- Этап проверки на выживаемость - живучесть каждого экземпляра микроорганизма сравнивается со случайным числом(5) плюс случайное число(10) за каждого соседа, если живучесть оказалась меньше, то экземпляр микроорганизма погибает.
- Этап размножения - для каждого живущего экземпляра проверяется следующее условие; если скорость его размножения превысит случайное число(100) и будет хоть одна свободная соседняя клетка, то она будет населена этим типом микроорганизмов (клетка для заселения определяется случайным образом).
Теперь инструкция по работе:
- Счетчик различных типов микроорганизмов, пока нет ни одного микроорганизма элементы управления со 2 по 9 недоступны.
- Выбор активного микроорганизма.
- Цвет колонии.
- Изменение токсичности. (Для достижения некоторого баланса сумма всех параметров для каждого типа микроорганизмов не может превышать 100.)
- Изменение скорости размножения.
- Изменение живучести.
- Гистограмма, показывающая соотношение популяций всех существующих типов микроорганизмов.
- Размер кисти, используется для заселения колоний состоящих более чем из одного экземпляра.
- Регулятор скорости работы программы.
- Рабочее поле, вместимостью 2500 клеток, при щелчке на нем заселяются микроорганизмы выбранные в элементе (2).
Работа начинается с добавления нового вируса(1), затем, кликая в нужных местах, его экземпляры
вносятся на рабочее поле(10), при желании можно поменять некоторые параметры(4,5,6), затем кнопка
старт - процесс пошел. Добавлять, удалять и изменять вирусы можно прямо на ходу.
В журнале фиксируются происходящие на поле события и могут быть выставлены фильтры для различных
типов этих событий.
Все это дело можно скачать (228,3 КБ) и обсудить.