Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Молодежная весна 2022

.pdf
Скачиваний:
11
Добавлен:
27.08.2022
Размер:
24.75 Mб
Скачать

имеетбольшоеколичестводокументациииимеющийвсенеобходимое для создания современного игрового приложения. Очень большое количество разработчиков выбирают именно Unity изза его относительной простоты и поддержкой всех современных платформ для игровых приложений.

В качестве языка программирования был выбран C# из-за его высокой совместимости с Unity, что позволяет писать скрипты для игрового приложения [1].

Список литературы

1. Unity: [офиц. док.]. URL: https://docs.unity3d.com/ru/530/Manual (дата обращения: 18.03.2022). Текст: электронный.

2. Habr: интернет-ресурс программистов. URL: https://habr.com/ ru/company/otus/blog/532284 (дата обращения: 18.03.2022). Текст: элек-

тронный.

Научный руководитель Д. А. Макаров, канд. техн. наук, доцент кафедры информатики вычислительной техники и прикладной математики, Забайкальский государственный университет.

Сервис для работы фитнес-инструкторов и фитнес-залов

М. М. Балабаев1, Д. А. Пичуев2

1, 2 студент группы ИВТ-18, энергетический факультет ЗабГУ, г. Чита

Продуктивная работа в зале зависит от многих факторов – правильность выполнения упражнений, питание, здоровый сон, хорошая музыка, повышение нагрузки на мышцы, правильное распределение времени и т. д.

Сегодня почти каждому человеку, который тренируется в зале нужно следить за собой. Правильное выполнение большинства факторов помогает достичь хороших результатов на тренировке. Поэтому существуют сервисы для работы фитнесинструкторов и фитнес-залов.

Актуальность выбранной темы обозначена тем, что с каждым днем люди все чаще пользуются сервисами, которые позволяют удовлетворить как можно больше потребностей человека в одном приложении.

Проект «Fitsupp» это не только удобный сервис для фиксации данныхпотренировкам,питаниюиотслеживаниюсвоихрезультатов, но и возможность получить информацию о полном цикле работытренера.Спомощьюприложенияспортсменсможетсвоевре11

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

В результате разработки в данном приложении будут осуществлены следующие функции:

1.Общение с тренером и с другими пользователями прило-

жения.

2.Удобный календарь с составлением тренировок на определенный день и с заметками по тренировкам.

3.Составление рациона питания или заимствование уже го-

тового.

4.Поиск продуктов из базы, с помощью сканера штрих кодов или добавлением в ручную.

5.Покупка товаров для фитнеса.

6.Следить за собой с помощью данных из статистики.

7.Подсчет калорий, белков, жиров и углеводов.

8.Видео курсы.

Архитектура сервиса должна описывать работу следующих приложений Backend, Frontend, MobileApp,Api и т. д.

Архитектура сервиса представлена на рисунке.

Архитектура фитнес-сервиса

12

К сервису относятся такие элементы как: чат, калькулятор калорий, интернет магазин, регистрация и авторизация, аутентификация, оплата, цели и статистика, календарь с заметками и с добавлением тренировок (событий), сканер штрих кодов, составление рациона питания, видео курсы.

Для решения поставленных задач выбраны следующие инструменты разработки:

1.Язык программирования для мобильного приложения –

Dart. Framework – Flatter.

2.Языкпрограммированиядлявеб-приложения–JavaScript, framework – Nest Js, Node Js.

3.Среда разработки Visual Studio Code.

4.Figma – программа для прототипирования.

Научный руководитель В. А. Машкин, канд. техн. наук, доцент кафедры информатики вычислительной техники и прикладной математики, Забайкальский государственный университет.

Реализация игры “Soulbound” в жанре Hack and Slash

К. К. Бизяев

студент гр. ИВТ-18, энергетический факультет ЗабГУ, г. Чита

Hack and slash (англ. «режь и руби») – жанр видеоигр, игровой процесс которых строится на боевой системе с активным использованием оружия ближнего боя [4]. Боевую систему этого жанра можно описать афоризмом Нолана Бушнелла – легко осво-

ить, но трудно овладеть (англ. easy to learn and difficult to master) [1]. Связано это с тем, что игроку предоставляется множество боевых приемов, которые обычно просто исполнить сами по себе, однако задачей их комбинирования в целые серии атак занимается сам игрок.

Основой для разработки такой системы станут плагины

GameplayAbilities иEnhanced Input, поставляемый вместе с игро-

вым движком Unreal Engine. Gameplay Abilities – гибкий фреймворк для создания игровых способностей и множеством дополнительного функционала для создания комплексной игровой системы, построенной на способностях [3]. Enhanced Input создан для проектов, требующих более продвинутых функций ввода или переназначения элементов управления во время игры [2].

13

Сначала предстоит создать компонент для трассирования движения объекта, позволяющий определить, какие объекты были задеты при движении объекта, коим будет выступать оружие. Решение состоит в создании нескольких сокетов на оружии – точек по всей длине клинка. Тогда компонент трассировки через одинаковые промежутки времени берет предыдущие

итекущие позиции этих точек и с помощью метода бросания лучей определяет, произошло ли столкновение с каким-либо объектом. Такой метод определения столкновений намного точнее, чем метод использования геометрических примитивов, но

именее тре6ователен к скорости вычислений, чем определение столкновений с полигональной сеткой объекта, оба этих пре­ имущества важны при разработки подобной игровой системы. Этот метод также можно легко улучшить с помощью алгоритма интерполяции, которая позволит найти дополнительные точки движения объекта и повысить точность трассировки, что может быть необходимо, если объект совершил движение всего за несколько кадров, например, из-за слишком быстрой анимации персонажа.

Следующим шагом станет создание комбо-системы на основе игровых способностей из плагина Gameplay Abilities. Нужно создать игровую способность, которая бы просто проигрывала анимацию атаки и имела информацию о наступлении двух событий: нажатии игроком клавиши для продолжения серии атак и наступлении того момента в анимации, когда персонаж может начать следующую атаку. На первое событие можно подписаться, используя подсистему Enhanced Input. Второе событие реализуется с помощью специальных маркеров на временной шкале соответствующей анимации игровой способности, которые и сообщают о моменте, когда возможно продолжить комбинацию. И если игрок нажал клавишу, то следующая способность активируется в момент получения информации о событии от анимации, иначе, если событие уже наступило, то комбинация продолжается в любой момент нажатия клавиши игроком, вплоть до завершения способности или анимации. Маркеры на временной шкале анимации можно так же использовать для начала и завершения трассирования движения оружия и ограничения интервала, когда нажатие клавиши будет засчитано.

14

В результате получается простая игровая система, позволяющая создать фундамент разработки для любого подобного проекта. А за счет дополнительного функционала, поставляемого с упомянутыми плагинами, можно значительно усовершенствовать игровой процесс игры.

Список литературы

1.Bushnell’s Law. URL: https://en.wikipedia.org/wiki/Bushnell%27s_ Law (дата обращения: 12.04.2022). Текст: электронный.

2.Enhanced Input. URL: https://docs.unrealengine.com/4.27/en-US/ InteractiveExperiences/Input/EnhancedInput (дата обращения: 12.04.2022).

Текст: электронный.

3.Gameplay Ability System for Unreal Engine. URL: https://docs. unrealengine.com/5.0/en-US/gameplay-ability-system-for-unreal-engine (дата обращения: 12.04.2022). Текст: электронный.

4.Hack and slash. URL: https://ru.wikipedia.org/wiki/Hack_and_slash (дата обращения: 12.04.2022). Текст: электронный.

Научный руководитель Д. А. Макаров, канд. техн. наук, доцент кафедры информатики и вычислительной техники, Забайкальский государственный университет.

Телеграм-бот для оповещения студентов и преподавателей ЗабГУ

А. А. Раменский

студент гр. ИВТ-19, энергетический факультет ЗабГУ, г. Чита

Расписание занятий может изменятся в течении семестра или сессии. Особенно часто в первые недели семестра. Из-за человеческого фактора не все узнают об изменениях в расписании своевременно, поэтому пропускают занятия или опаздывают на них, не успевают подготовиться. Чтобы решить эту проблему, был реализован телеграм-бот для оповещений об изменении в расписании.

Возможности бота. Дляподпискинаизменениярасписания, пользователь проходит простую регистрацию в боте (кнопка «Регистрация», рис. 1б), указывает студент он или преподаватель, имя, а также группу. После изменения расписания он получит сообщение со списком изменений (рис. 1а) и новое расписание в отдельном файле (jpg-изображение).

15

а

б

Рис. 1. Бот в приложении Telegram:

а) сообщение об изменении расписания; б) кнопки для взаимодействия с ботом

Бот умеет выдавать расписание в виде изображения формата jpg по запросу (рис. 2, 3), может объединить в одно изображение расписание нескольких групп. Планируется добавить оповещения о начале занятия, чтобы студенты и преподаватели не забывали о них.

Рис. 2. Расписание, выданное ботом

16

Реализация. Программа Comparator запускается каждый день по расписанию планировщика задач cron, чтобы скачивать с сайта ЗабГУ и сравнивать новое расписание со старым и в зависимости от этого оповестить пользователя об изменениях. Расписание загружается в базу данных в формате JSON. Запустившись первый раз Comparator заполнит базу данных (рис. 4.) расписанием, группами и преподавателями. После первого запуска этого приложения запускается Bot. Эта программа обрабатывает сообщения, отправленные боту в приложении Telegram.

Стек технологий:

Язык программирования Python3.9

БД SQLite3

Библиотеки языка программирования Python: selenium, sqlalchemy, pandas, numpy, telebot

API приложения Telegram

VPS с операционной системой Debian10

Преимущества бота.

Редизайн расписания. Бот создаёт собственный дизайн расписания при помощи библиотеки Pillow. Дизайн легко изменить, заменив параметры программы, создавая тем самым новые темы оформления.

Рис. 3. Новый дизайн расписания по умолчанию

17

18

Рис. 4. ESR-модель базы данных

Умный парсер данных. На сайте ЗабГУ нет API или машин- но-читаемого формата расписания, поэтому приходится загружать расписание в базу данных, выбирая группу или преподавателя с помощью Selenium WebDriver, скачивать таблицу с расписанием в html разметке. После конвертировать её в формат JSON и загружать в базу данных.

Список литературы

1.The Selenium Browser Automation Project. URL: https://www. selenium.dev/documentation (дата обращения: 05.03.2022). Текст:

электронный.

2.Intro to data structures. URL: https://pandas.pydata.org/docs (дата обращения: 05.03.2022). Текст: электронный.

3.Tutorial. URL: https://pillow.readthedocs.io/en/stable/handbook/ tutorial.html (дата обращения: 11.03.2022). Текст: электронный.

4.Telebot быстро и понятно. Текст: электронный // Телеграм-бот: [сайт].URL:https://habr.com/ru/post/580408(датаобращения:05.03.2022).

Текст: электронный.

5.The Python SQLToolkit and Object Relational Mapper. URL: https:// www.sqlalchemy.org (дата обращения: 08.03.2022). Текст: электронный.

Научный руководитель С. В. Ветров, старший преподаватель кафедры информатики вычислительной техники и прикладной математики, Забайкальский государственный университет.

Кластерный анализ студентов ЗабГУ

М. В. Лягоцкий

студент гр. ИВТ-19, энергетический факультет ЗабГУ, г. Чита

Цель работы – обнаружить и исследовать кластеры студентов в пространстве экзаменационных оценок. Для этого нужно решить 3 задачи: получение данных из информационной системы, предварительная обработка и очистка данных, непосредственно кластеризация.

Получение данных. Информационной система вуза не имеет API для доступа к информации об успеваемости. Поэтому была написана программа, которая скачивает данные о студентах с веб-страницу. Использован язык программирования Python, библиотеки selenium и pandas. Полученные данные сохраняются в CSV-файл.

19

Предварительная обработка данных. Признаки – оценки и зачёты в информационной системе хранятся в строковом формате. Поэтомунужноперевестиихвчисловойвидпоправилам:«Отлично» и «Зачтено» → 5, «Хорошо» → 4, «Удовлетворительно» → 3, «Неявка» и «Незачет» → 2, незаполненное значение → 0.

Дальнейший анализ упирается в большое количество пропусков в данных. Данные не по всем предметам и студентам внесены в информационную систему. Присутствуют различия в учебных планах анализируемых групп: ИВТ-16, ВМК-16, ИВТ-17, ВМК-17, ИВТ-18, ИВТ-19, ВМК-19. Информационная система также содержит отчисленных студентов.

Рис. 1. Тепловая карта пропусков в данных:

строки – студенты; столбцы – предметы; пропуск отмечен чёрным

20