Skip to content

kszorin/OceanWorldKotlin

Repository files navigation

OceanWorldKotlin

Тестовое приложение на вакансию Android Developer

ЗАДАЧА: написать приложение “Морской мир”

  • Приложение содержит один экран в портретной ориентации.
  • Смены ориентации экрана не предполагается, соответственно, портретный режим экрана должен быть жестко установлен.
  • На экране расположена таблица размера 15x10 (высота х ширина) с ячейками равными по размеру между собой, размер таблицы должен задаваться переменными в коде, чтобы можно было быстро поменять размер.
  • Каждая ячейка может: быть свободна, либо занята одной особью организма какого-либо вида.
  • В нижней части экрана располагается кнопка “Рестарт”, при нажатии на которую происходит перезагрузка мира на начальное состояние (что подразумевается под начальным состоянием поясняется ниже).
  • Размер одной ячейки зависит от размера предоставленного для таблицы пространства.
  • При клике по таблице должен совершаться один такт симуляции мира. В течение одного такта каждая особь совершает один ход (если может). Особи совершают ходы в течение одного такта по очереди, в порядке обхода таблицы.
  • Существует возможность открыть экран с информацией об особях (id особи, вид, жив на данный момент или нет, сколько успешных охот, сколько потомков и т.п.), для хранения используется БД;
  • При разработке архитектуры приложения используется Clean Architecture;
  • В корне проекта находится диаграмма классов проекта, цвета обозначают принадлежность классов к тем или иным слоям согласно Clean Architecture.

ПРАВИЛА ЖИЗНИ В “МИРЕ”

Для всех организмов:

  • Окрестностью клетки считаются соседние 8 клеток.
  • Все организмы могут перемещаться на одну клетку в пределах окрестности (то есть вверх, вниз, вправо, влево и по диагонали).
  • Есть два вида организмов: пингвины и касатки.

ПИНГВИНЫ:

Перемещение:

  • На каждом ходе пытается плавать.
  • Для движения выбирает случайное направление.
  • Если в выбранном направлении располагается пустая клетка, то перемещается туда, иначе остается на месте.

Размножение:

  • Если живет 3 хода, то на третий ход пробует произвести потомство.
  • Размножение происходит путем создания нового пингвина на произвольном свободном месте в окрестности около пингвина.
  • Если рядом свободных мест нет, то ничего не делает и следующего размножения ждёт ещё 3 хода.

КАСАТКИ

Перемещение:

  • На каждом ходе пытается плавать.
  • На каждом ходе проверяет все направления и если встречается пингвин, то перемещается на его место и съедает его.
  • Если рядом нет пингвинов, то двигается так же, как пингвин.
  • Есть других касаток нельзя.

Размножение:

  • Если живет 8 ходов то на 8ой ход пробует произвести потомство.
  • Процесс размножения происходит так же, как у пингвинов.

Гибель:

  • Если не съест ни одного пингвина в течение 3 ходов, то умирает (исчезает из мира, оставляя клетку свободной).

Начальное состояние: в начальном состоянии мир должен быть заполнен пингвинами на 50% и касатками на 5%.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages