#Мухоемкость
3 дня + Python 2.7 + Qt4 (c Qt не работал, поэтому выглядит несколько топорно)
Задание:
Разработать приложение, моделирующее поведение мух в замкнутом пространстве.
После запуска приложения пользователь задает исходные данные:
- Размер поля в клетках - MxM;
- Максимальное количество мух помещающееся в одной клетке (мухоемкость) - N;
- Затем, пользователь по одной сажает мух на поле;
- Мухи отличаются степенью врожденной тупости - T.
Алгоритм полета мухи:
- Муха появляется на поле в произвольной клетке с учетом мухоемкости;
- Затем муха выбирает соседнюю клетку, в которую она полетит, время принятия решения определяется врожденной тупостью и не должно превышать T;
- Если в выбранной клетке превышена мухоемкость, то муха остается в своей клетке и опять тупит выбирая куда полететь;
- Если в выбранной клетке мухоемкость не превышена, то муха мгновенно оказывается в заданной клетке.
Обязательные условия:
- Мухи должны летать асинхронно (т.е. каждая муха летает в своем потоке);
- По каждой мухе собирается полетная информация: скорость, пробег и возраст;
- Если возраст превышает T*M - то муха дохнет и остается в последней занимаемой клетке навсегда;
- Необходимо помечать мертвых мух, чтобы их можно было различать на поле;
- После нажатия кнопки "Стоп" должна выводиться статистика по каждой мухе: средняя скорость и пробег, сдохла или жива;
- Муха должна быть иконкой, пример - во вложении (google находит много вариантов).
Дополнительные условия - будут преимуществом:
- Анимация перемещения мух - приветствуется;
- Подкрашивать иконку в зависимости от степени тупости мухи;
- Возможность динамически изменять параметры поля (размер и/или мухоемкость);
- Индивидуальные прикольные иконки мух - приветствуются;
- Любые усовершенствования делающие поведение мух более жизненным - приветствуется.