Wiki
Clone wikilife-emulator / Home
# Описание репозитария
Репозитарий включает в себя 3 типа ветвей:
- Ветвь
webinar.номер вебинара
- содержит исходный код проекта для каждого из вебинаров. Исправления ошибок после вебинара попадут в эту же ветвь. - Ветвь
develop
- содержит нестабильный исходный код проекта за пределами вебинаров. Код может содержать ошибки и работать неправильно. - Ветвь
master
- содержит стабильный исходный код проекта за пределами вебинаров.
Для скачивания исходого кода с использованием git
необходимо использовать следующую команду:
git clone https://Hosh1kage@bitbucket.org/Hosh1kage/life-emulator.git
Репозитарий включает в себя 3 типа тегов:
- Тег
webinar.номер вебинара.v.год.месяц.день.часы.минуты
для коммитов, относящихся к вебинарам. - Тег
develop.v.год.месяц.день.часы.минуты
для коммитов, не относящихся к вебинарам и содержащих нестабильным изменениям. - Тег
master.v.год.месяц.день.часы.минуты
для коммитов, не относящихся к вебинарам и содержащих стабильным изменениям.
Для скачивания исходного кода без использования git
необходимо зайти в раздел Загрузки -> Теги
, найти нужный тег в списке и нажать на нужный формат архива с исходным кодом.
# Постановка задачи №1
Разработать десктопное приложение, реализующее модель местности, для получения времени наступления момента недостаточности растительных ресурсов для выживания популяции людей (10 мужчин и 10 женщин по 30 лет).
- Местность. Местность представляет из себя небольшой участок земли, окруженный с 3 сторон водой и имеющий один сухопутный путь на восток. На этой местности отсутствуют какие-либо живые существа, кроме людей и одного вида растений
Apple
. Погода на данной местности всегда благоприятная. Год здесь считается равным 300 дням, а месяц - 30 дням. - Энергия/Отдых. Каждый день человек тратит энергию: 1ед при стоянии на месте или приеме пищи, 2ед при перемещении по суше, 3ед при перемещении по воде и 4ед при зачатии и рождении ребенка. Для полного восполнения сил человеку необходимо спать в течение 1 дня. При этом нет никакой зависимости от текущего времени суток.
- Сытость/Питание. Каждый день человек тратит сытость: 1ед при стоянии на месте или отдыхе, 2ед при перемещении по суше, 3ед при перемещении по воде и 4ед при зачатии и рождении ребенка. Люди могут питаться только плодами прорастающего здесь вида растения, при этом они не имеют навыков в земледелии для самостоятельного выращивания растительной пищи, а так же не склонны к каннибализму. Для полного насыщения человеку необходимо примерно 2 (в возрасте до 10 лет) или 4 (в возрасте более 10 лет) плода растения.
- Размножение. При встрече с мужчиной женщина имеет возможность забеременеть с вероятностью 30%. Вынашивание ребенка происходит в течении 10 месяцев, при этом пол ребенка может с равной долей вероятности быть как мужским, так и женским.
- Смерть. Средняя продолжительность жизни человека составляет 80 лет. Все люди миролюбивы и никогда не убивают своих сородичей, имеют иммунитет ко всем видам заболеваний и ядов, а так же высокий инстинкт самосохранения, поэтому смерть может наступить только естественным путем в случайный момент времени, при выходе за пределы местности (считается потерявшимся без вести) или при полном отсутствии энергии или сытости.
- Растения. На начальном этапе на местности имеется только 20 деревьев. Среднее время роста каждого нового дерева составляет 1 день, при этом распространение деревьев происходит посредством случайного падения созревшего плода на соседние участки с вероятностью 1% в день (если плод упал в воду или на занятый участок, то он пропадает). Для полного созревания плодам необходим 1 день, а сами плоды появляются на деревьях в конце каждого месяца в количестве от 5 до 15 штук с равной долей вероятности. При этом на одном дереве не может быть одновременно более 63 плодов.
Приложение должно соответствовать следующим функциональным требованиям:
- Структура пользовательского интерфейса должна соответствовать следующей схеме:
- Область
Map Info
должна отображать основную статистику по местности. - Область
Events Info
должна содержать список всех важных событий. - Область
Map
должна визуализировать модель местности размером 65x65. - Область
Map
должна содержать следующие типы местности:- Глубокая и мелкая вода.
- Низкая и высокая земля.
- Низкая и высокая земля с травой.
- Область
Map
должна быть заполнена в формате UCF и соответствовать исходным данным из файла test-data.dat (сериализованный двумерный массив 65x65). - Область
Cell Info
должна отображать содержимое выбранной на карте ячейки. - Область управления должна содержать следующий набор кнопок:
B1
- Пуск.B2
- Пауза.B3
- Стоп (сброс).
# Постановка задачи №2
TODO
Updated