ВВЕДЕНИЕ 6
1 Постановка задачи 7
2 Разработка приложения по симуляции экосистемы 8
2.1 Разработка искусственного интеллекта рыб 8
2.2 Разработка процедурной генерации ландшафта 13
2.3 Введение эволюции рыб 14
2.4 Языки и среда программирования 18
3 Модернизация приложения 20
3.1 Обобщение искусственного интеллекта обитателей экосистемы....21
3.2 Внедрение возможности настраивать поведение особей 2 2
3.3 Добавление возможности настройки передачи генов особей 24
3.4 Создание настроек для процедурной генерации ландшафта 25
3.5 Настройки периодичности появления пищи для обитателей 26
4 Разработка исследовательского форума 27
4.1 Архитектура веб-приложения 28
4.2 Серверная часть приложения 31
4.3 Клиентская часть приложения часть 36
4.4 Безопасность веб-приложения 40
5. Функционал веб-сайта 43
ЗАКЛЮЧЕНИЕ 46
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 47
ПРИЛОЖЕНИЕ А Функция бросания лучей 48
ПРИЛОЖЕНИЕ Б Наложение двумерного шума на ландшафт 50
ПРИЛОЖЕНИЕ В Код передачи генов потомку 50
ПРИЛОЖЕНИЕ Г Создание json веб токена и занесение в базу сессии 51
ПРИЛОЖЕНИЕ В Пример верстки в фреймворке Flutter 52
В современном мире множество экспериментов можно провести с помощью ЭВМ. Симуляции позволяют как сократить траты ресурсов на проведение реальных экспериментов, так и уменьшить время, требуемое на его общую подготовку, а в некоторых случаях проведение эксперимента и вовсе невозможно физически. Такие программы для симуляции затрагивают разнообразные сферы: это может быть симуляция физических процессов, химических реакций, биологических процессов. Например, программный пакет SimScale [1] предназначен для инженерного анализа; а программный пакет COMSOL Multiphysics позволяет моделировать течение химических реакций. Этот же пакет позволяет моделировать различные ситуации, связанные с биологией, например, распространение эпидемий. Но далеко не всегда подобные прикладные пакеты понятны пользователю и обычно требуют времени на подробное их изучение. Симуляции могут использоваться и в качестве ознакомления с той или иной сферой деятельности, могут стимулировать интерес к этой сфере деятельности.
Целью данной работы является создание игрового приложения образовательного характера для симуляции эволюционирующей водной экосистемы. Такое приложение может быть интересно людям всех возрастов, которые хотят познакомиться с этапами развития водной экосистемы, и призвано повысить интерес к изучению биологии.
Таким образом, была разработана игровая симуляция эволюционирующей водной экосистемы с процедурной генерацией ландшафта, в которой обитают водоросли, хищные и травоядные рыбы. Пользователь приложения имеет возможность создавать своих особей, задавая свои собственные уникальные комбинации настроек, регулируя механизмы передачи генов, размер начальной популяции и другие параметры, отвечающие за выживаемость вида в экосистеме. В симуляции возможно настроить процедурно-генерируемый ландшафт и частоту появления пищи, что расширяет варианты для проведения экспериментов. Помимо приложения был разработан веб-сайт - исследовательский форум, служащий для коммуникации пользователей приложения.
На данный момент настройка искусственного интеллекта не дает широких возможностей варьирования поведения. В будущем планируется добавить функционал, позволяющий визуально программировать конечный автомат особи, создавать пользовательские состояния и визуально определять переходы и условия переходов между этими состояниями. Упор на визуальную составляющую сделан по причине того, что не все пользователи приложения могут быть тесно знакомы с программированием. Аналогичный функционал планируется добавить и для настройки механизмов передачи генов
Также планируется интегрировать в исследовательский форум возможность регистрации и входа через сторонние сервисы, такие как Google или ВКонтакте. Это избавит пользователя от необходимости запоминать пароль от очередного сервиса, и, потенциально, увеличит количество пользователей форума и приложения.