Создание скриптов. Автоматизация прохождения мини-игры сбора иконок в Hockey Battle через BlueStacks 5 (Дистанционная работа)

Бюджет не указан

Задание: Создание скриптов. Автоматизация прохождения мини-игры сбора иконок в Hockey Battle через BlueStacks 5 (Дистанционная работа)

ТЕХНИЧЕСКОЕ ЗАДАНИЕ Проект: Автоматизация прохождения мини-игры сбора иконок в Hockey Battle через BlueStacks 5 Цель проекта Разработать приложение для Windows, которое автоматически проходит экран подтверждения активности пользователя в игре Hockey Battle, запущенной в эмуляторе BlueStacks 5. После завершения хоккейного матча в игре появляется экран мини-игры. На экране отображается от 1 до 3 движущихся объектов (иконок). Пользователь должен перетащить каждую иконку в область кубка. После успешного сбора всех иконок становится доступен переход к следующему матчу. Необходимо полностью автоматизировать данный процесс. Общие требования 1. Решение должно работать через ADB. 2. Использование нейросетей не требуется. 3. Распознавание объектов должно выполняться средствами OpenCV. 4. Управление должно осуществляться через ADB-команды Android, без использования эмуляции мыши Windows. 5. Решение должно работать с BlueStacks 5. Исходные данные 1. Количество иконок на экране: * минимум 1; * максимум 3. 2. Все возможные иконки заранее известны. 3. Существует фиксированный набор из 8 различных иконок. 4. В каждом прохождении мини-игры могут появляться любые 1–3 иконки из данного набора. 5. Внешний вид иконок не изменяется между запусками. 6. Изображение кубка постоянно и не изменяется. 7. Разрешение BlueStacks фиксированное и не изменяется во время работы программы. Функциональные требования Модуль подключения Программа должна: * автоматически подключаться к экземпляру BlueStacks через ADB; * контролировать наличие подключения; * автоматически переподключаться при потере соединения. Получение изображения Программа должна получать актуальный скриншот игрового экрана через ADB. Допустимые способы: * adb exec-out screencap; * иной аналогичный способ получения изображения устройства. Распознавание экрана мини-игры Программа должна определять появление экрана сбора иконок. Основной критерий: * обнаружение изображения кубка. Дополнительно допускается использование других контрольных элементов интерфейса. Распознавание объектов Программа должна: * обнаруживать координаты кубка; * обнаруживать координаты всех присутствующих иконок. Метод распознавания: * OpenCV Template Matching. Для работы разработчику будут предоставлены: * шаблон изображения кубка; * шаблоны всех 8 возможных иконок. Для каждой найденной иконки необходимо определить: * координаты центра объекта; * степень совпадения с шаблоном. Порог совпадения должен настраиваться через конфигурационный файл. Обработка движущихся объектов Иконки постоянно перемещаются по экрану. Программа должна: 1. Обнаружить объект. 2. Зафиксировать его текущие координаты. 3. Немедленно выполнить перетаскивание. 4. После завершения действия повторно выполнить поиск оставшихся объектов. Не требуется отслеживание траектории движения объекта в реальном времени. Алгоритм прохождения После обнаружения экрана мини-игры: 1. Найти кубок. 2. Найти все присутствующие иконки. 3. Для каждой найденной иконки: * определить центр; * выполнить drag-and-drop в центр кубка. 4. После каждого переноса выполнить повторное сканирование экрана. 5. Повторять действия до полного исчезновения всех иконок. Управление через ADB Для выполнения действий использовать Android input-команды. Необходимо реализовать: * короткий тап; * длинный тап; * drag-and-drop (swipe с длительностью). Все координаты должны передаваться непосредственно в Android через ADB. Контроль успешности После выполнения переноса необходимо проверять: * исчезла ли соответствующая иконка с экрана. Если объект не исчез: * повторить попытку. Количество повторных попыток должно настраиваться. Интеграция с существующим макросом Предусмотреть два режима работы: Режим 1 Программа работает параллельно с существующим макросом BlueStacks. При появлении экрана мини-игры программа берет управление на себя, проходит мини-игру и возвращает управление макросу. Режим 2 Полная автоматизация цикла без использования макросов BlueStacks. Режим работы должен задаваться в настройках. Логирование В лог необходимо записывать: * дату и время; * обнаружение мини-игры; * найденные иконки; * количество найденных объектов; * выполненные действия; * ошибки распознавания; * потерю соединения ADB; * успешное завершение мини-игры. Конфигурационный файл Вынести в настройки: * ADB-порт; * порог распознавания шаблонов; * разрешение экрана; * максимальное число повторных попыток; * задержки между действиями; * путь к шаблонам изображений. Технологический стек Язык: Python 3.12+ Библиотеки: * OpenCV * NumPy * ADB (Android Debug Bridge) * Pillow * PyYAML или JSON для конфигурации Архитектура Модуль ADB * подключение; * получение скриншотов; * отправка команд. Модуль компьютерного зрения * поиск кубка; * поиск иконок; * проверка исчезновения объектов. Модуль логики * управление состояниями; * выполнение алгоритма прохождения. Модуль логирования * файл логов; * отладочная информация.