Форум программистов, компьютерный форум, киберфорум
Python: ИИ, нейросети, ML, агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 07.02.2022
Сообщений: 3

Создание бота для мобильной игры TrafficRacer. Python. искусственный интеллект, нейронная сеть

07.02.2022, 13:42. Показов 4880. Ответов 0

Студворк — интернет-сервис помощи студентам
На скриншоте нужно распознать все машинки, при этом сохраняя их расположение во что-то (список, число, строка и т.д.).
Примерные мысли расписал ниже.
Ссылка на скриншоты, код, код без комментариев - https://disk.yandex.ru/d/_JUYMw8KOP5g9w
Запуск мобильной игры TrafficRacer происходит через эмулятор BlueStacks.
Это мой первый код с использованием больше чем одной библиотеки, поэтому не судите строго.
Открыт для идей и критики кода. Критикуя, пожалуйста, предлагайте.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import pyautogui
# Через эту ↑ библиотеку я делаю скриншот
import win32gui
# Через эту ↑ библиотеку я получаю координаты окна,
# а также переношу окно на первый план, иначе при создании скриншота произойдет ошибка
import pytesseract
# Через эту ↑ библиотеку я нахожу текст на фото
import keyboard
# Через эту ↑ библиотеку я буду управлять машинкой в окне игры
#                                             ↑
#                                  Машинка управляется стрелками
import time
 
# Чтобы библиотека работала нужно указать путь к .exe ↓
pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
 
# Через BlueStacks ↓ происходит эмуляция android, где собственно и запущена игра TrafficRacer
name = 'BlueStacks'
 
 
# Получаю ↓ координаты окна - крайний верхний левый и крайний нижний правый углы
def get_size():
    win32gui.SetForegroundWindow(win32gui.FindWindow(None, name))
    return win32gui.GetWindowRect(win32gui.FindWindow(None, name))
 
 
# Создаю и возвращаю скриншот
def get_screenshot(positions=get_size()):
    a, b, c, d = positions
    return pyautogui.screenshot(region=(a, b, c - a, d - b))
 
 
while True:
    # В случае если машинка разбилась появляется окно со счетом,
    # с помощью pytesseract.image_to_string я распознаю слова на картинке,
    # а затем если они совпадают хотябы с одним словом из этого множества,
    # то я нажимаю на кнопку start again (скриншот score).
    #                        ↓ ↓ ↓
    while {'cash', 'close', 'total', 'garage', 'keep', 'above',
           'overtakes', 'leaderboards', 'achievements', 'doubler', 'your'} & \
            set(pytesseract.image_to_string(get_screenshot()).lower().split()):
        x, y, x1, y1 = get_size()
        pyautogui.click(x + (x1 - x) // 10 * 6.5, y1 - (y1 - y) // 10)  # Кнопка start again
 
    # Получаю ↓ нужный мне скриншот
    ScreenShot = get_screenshot()
    # Дальше мои мысли таковы:
    # 1) Каким-то образом мне нужно распознать все машинки на скриншоте
    #   (предпологаю делать это через нейросеть или какие-то фильтры/маски и т.п.),
    #
    # 2) Разбить поперёк каждую дорожку на n-ое количество частей,
    #   чтобы потом у нас получился список из дорожек.
    #
    #   Пример1: Рассмотрим скришот номер 31. (text31)
    #   Пусть n = 10, пусть 2 - это мы, 1 - это любая другая машина или часть машины, тогда:
    #   [
    #   [0, 0, 0, 0, 0, 0, 0, 0, 1, 1],    - дорожка 1
    #   [2, 2, 0, 0, 0, 0, 0, 0, 0, 0],    - дорожка 2
    #   [1, 0, 0, 0, 0, 0, 0, 0, 0, 0],    - дорожка 3
    #   [0, 0, 0, 0, 1, 1, 0, 0, 0, 0],    - дорожка 4
    #   ]
    #
    #  !) Но как тогда распознавать поворачивающие машинки?
    #   Мысль: разбить каждую дорожку вдоль на 2 части. ()
    #
    #   Пример2. Рассмотрим скришот номер 24. (text24)
    #   [
    #   [2, 2, 0, 0, 0, 0, 0, 0, 0, 0],    - дорожка 1.1
    #   [2, 2, 0, 0, 0, 0, 0, 0, 1, 1],    - дорожка 1.2
    #   [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],    - дорожка 2.1
    #   [0, 0, 0, 0, 0, 1, 1, 0, 0, 0],    - дорожка 2.2
    #   [0, 0, 0, 0, 0, 1, 1, 0, 0, 0],    - дорожка 3.1
    #   [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],    - дорожка 3.2
    #   [0, 0, 0, 1, 1, 0, 0, 0, 0, 0],    - дорожка 4.1
    #   [0, 0, 0, 1, 1, 0, 0, 0, 0, 0],    - дорожка 4.2
    #   ]
    #
    # На счет 2 пункта:
    # Как мне кажется хранить и перебирать список списков это малопроизводительно,
    # а значит нужен другой способ.
    # Это лишь идея, реализацию я изменю ещё кучу раз.
Миниатюры
Создание бота для мобильной игры TrafficRacer. Python. искусственный интеллект, нейронная сеть   Создание бота для мобильной игры TrafficRacer. Python. искусственный интеллект, нейронная сеть   Создание бота для мобильной игры TrafficRacer. Python. искусственный интеллект, нейронная сеть  

0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.02.2022, 13:42
Ответы с готовыми решениями:

Искусственный интеллект для логической игры
Конечно, громко звучит "искусственный интеллект", но в общем надо сделать бота для логической игры. Вот сама игра. Для игры в...

Искусственный интеллект (боты) для игры
с чего стоит начать создание ботов в игре (rpg) ? Нейронные сети или какое-то другое направление ? Посоветуйте какую-нибудь понятную...

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2022, 13:42
Помогаю со студенческими работами здесь

Нужен программист для написания скрипт бота для мобильной онлайн игры заплачу
Здраствуйте господа программисты мне нужен бот для мобильной онлайн игры я заплачу)

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

Нейронная сеть для распознавания объектов на Python
Всем привет. Нужно написать СОБСТВЕННУЮ нейронную сеть для распознавания объектов на фотографии. Вот пример фотографии, на которой...

Нейронная сеть для поиска путей обхода препятствия (Python)
Здравствуйте, недавно начал изучать создание нейронных сетей на Python (в частности используя библиотеку Keras). Делал пример по...

Создание бота для игры
Добрый день, столкнулся с такой задачей, нужно написать бота, допустим для игры Hearthstone, суть бота состоит в том что бы он заходил на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru