Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Без описания
DeLiberate
Отправлено: 02 Января, 2015 - 15:01:48
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 63
Дата рег-ции: Янв. 2015  
Репутация: 0




Есть код:
start:
проверяем наличие изображения 'A' в области 'OA', если есть - жмем кнопку 'a';
проверяем наличие изображения 'B' в области 'OB', если есть - жмем кнопку 'b';
проверяем наличие изображения 'C' в области 'OC', если есть - жмем кнопку 'c';
и так далее...
goto start;
алгоритм такой:
a;
b;
c;
a;
b;
c;


Проблема: если, например, в данный момент скрипт проверяет область 'B' и в этот же момент искомое изображение появится в области 'A' - кнопка 'а' не нажмется.;
Вопрос: как организовать параллельное выполнение функций поиска? Что то вроде:
a b c;
a b c;




Еще вопрос:
Что быстрее, при условии, что области поиска одинаковы
  • findimage //размер 2x2
  • getcolor //по 1 пикселю, берем 4 раза , для точности
  • findheapcolor //4 пикселя
  • scanpixel //по 1 пикселю, берем 4 раза , для точности
    (Добавление)
    код (Отобразить)

    (Добавление)
    код_второй кусок (Отобразить)
  •  
     Top
    Kibor
    Отправлено: 02 Января, 2015 - 17:24:18
    Post Id



    Администратор
    Эксперт


    Просматривает форум
    Сообщений всего: 8227
    Дата рег-ции: Март 2013  
    Откуда: Одесса
    Репутация: 357




     DeLiberate пишет:
    Что быстрее

    findimage

    многопоточности нет. она и не нужна тут.
    есть таймер(для просмотра ссылки Вам необходимо авторизоваться)
     DeLiberate пишет:
    Проблема: если, например, в данный момент скрипт проверяет область 'B' и в этот же момент искомое изображение появится в области 'A' - кнопка 'а' не нажмется.;


    если есть из. B
    {
    если нет из. A
    {
    наж. a
    }
    }

    так возможно?
     
     Top
    DeLiberate
    Отправлено: 02 Января, 2015 - 18:13:31
    Post Id



    Пользователь
    Участник


    Покинул форум
    Сообщений всего: 63
    Дата рег-ции: Янв. 2015  
    Репутация: 0




     Kibor пишет:

    если есть из. B
    {
    если нет из. A
    {
    наж. a
    }
    }

    так возможно?

    То есть:
    Спойлер (Отобразить)

    Я верно понял? Если так, то это делает только хуже, в плане точности.


    С таймерами:
    code (Отобразить)

     Kibor пишет:
    Когда наступает время срабатывания управление передается в блок таймера.

    Таким образом, если таймер сработает, например тут:
    CODE:
    keydown('q');
    pause (v); //вот тут, не успев отпустить кнопку
    keyup('q');

    то все пойдет крахом.
    Какие еще варианты?
     
     Top
    Kibor
    Отправлено: 02 Января, 2015 - 18:25:38
    Post Id



    Администратор
    Эксперт


    Просматривает форум
    Сообщений всего: 8227
    Дата рег-ции: Март 2013  
    Откуда: Одесса
    Репутация: 357




     DeLiberate пишет:
    то все пойдет крахом.

    ну а с многопоточностью не пойдет?

     DeLiberate пишет:
    Если так, то это делает только хуже, в плане точности.

    я не знаю что имеется в виду под точностью в данном случае.
    ну зная точной задачи ничего не скажу тут
     
     Top
    DeLiberate
    Отправлено: 02 Января, 2015 - 18:36:29
    Post Id



    Пользователь
    Участник


    Покинул форум
    Сообщений всего: 63
    Дата рег-ции: Янв. 2015  
    Репутация: 0




     Kibor пишет:
     DeLiberate пишет:
    то все пойдет крахом.

    ну а с многопоточностью не пойдет?
     DeLiberate пишет:
    Если так, то это делает только хуже, в плане точности.

    я не знаю что имеется в виду под точностью в данном случае.
    ну зная точной задачи ничего не скажу тут



    Тут проблема в чем: если тут сработает таймер,
    CODE:
    keydown('q');
    pause (v); //вот тут, не успев отпустить кнопку
    keyup('q');

    то будет выполнятся код таймера, а этот будет ждать.
    Если выделить каждому таймеру свой поток - таких конфликтов не может быть.


    Игра в ВК "Flash guitar hero"
    скрипт ищет ноты, если находит - жмет.


    всего пять нот, каждая может быть трех цветов - отсюда три проверки на ноту * на пять нот = 15 "findimage"


    процессор грузит не сильно, но
    если ноты идут быстро, то получается
     Цитата:
    если, например, в данный момент скрипт проверяет область 'B' и в этот же момент искомое изображение появится в области 'A' - кнопка 'а' не нажмется.;
    .
    Вот и ищу оптимальный алгоритм работы.
    (Добавление)
     DeLiberate пишет:
     Kibor пишет:
     DeLiberate пишет:
    то все пойдет крахом.

    ну а с многопоточностью не пойдет?
     DeLiberate пишет:
    Если так, то это делает только хуже, в плане точности.

    я не знаю что имеется в виду под точностью в данном случае.
    ну зная точной задачи ничего не скажу тут



    Тут проблема в чем: если тут сработает таймер,
    CODE:
    keydown('q');
    pause (v); //вот тут, не успев отпустить кнопку
    keyup('q');

    то будет выполнятся код таймера, а этот будет ждать.
    Если выделить каждому таймеру свой поток - таких конфликтов не может быть.


    Игра в ВК "Flash guitar hero"
    скрипт ищет ноты, если находит - жмет.


    всего пять нот, каждая может быть трех цветов - отсюда три проверки на ноту * на пять нот = 15 "findimage"


    процессор грузит не сильно, но
    если ноты идут быстро, то получается
     Цитата:
    если, например, в данный момент скрипт проверяет область 'B' и в этот же момент искомое изображение появится в области 'A' - кнопка 'а' не нажмется.;
    .
    Вот и ищу оптимальный алгоритм работы.

    Еще вопрос, про : какой тип переменной может принимать параметр "Процент_совпадений_достаточный_для_идентификации" в функции findimage
     
     Top
    Kibor
    Отправлено: 02 Января, 2015 - 18:51:06
    Post Id



    Администратор
    Эксперт


    Просматривает форум
    Сообщений всего: 8227
    Дата рег-ции: Март 2013  
    Откуда: Одесса
    Репутация: 357




     DeLiberate пишет:
    Тут проблема в чем: если тут сработает таймер,
    CODE:
    keydown('q');
    pause (v); //вот тут, не успев отпустить кнопку
    keyup('q');

    то будет выполнятся код таймера, а этот будет ждать.
    Если выделить каждому таймеру свой поток - таких конфликтов не может быть.


    ну это обходится флагами.
    CODE:
    int f1=0, f2=0, f3=0;

    таймер(0,1)
    {
    if (f2==0 && f3==0)
    {
    if (рис a)
    {
    f1=1;
    keydown('q');
    pause (v);
    keyup('q');
    f1=0;
    }
    }
    }
    таймер(1,1)
    {
    if (f1==0 && f3==0)
    {
    if (рис b)
    {
    f2=1;
    keydown('e');
    pause (v);
    keyup('e');
    f2=0;
    }
    }
    }
    таймер(2,1)
    {
    ............
    }


    иль простым key('e');
    паузу в настро йках кибор установить.





    короче суть в быстрой одновременной проверке?
    тогда искать findimage по заранее сделанном скрине как(для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
     DeLiberate пишет:
    какой тип переменной может принимать параметр "Процент_совпадений_достаточный_для_идентификации" в функции findimage

    int 0-100
     
     Top
    DeLiberate
    Отправлено: 02 Января, 2015 - 19:04:08
    Post Id



    Пользователь
    Участник


    Покинул форум
    Сообщений всего: 63
    Дата рег-ции: Янв. 2015  
    Репутация: 0




     Kibor пишет:

    ну это обходится флагами.
    Спойлер (Отобразить)


    короче суть в быстрой одновременной проверке?
    тогда искать findimage по заранее сделанном скрине как(для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
    int 0-100

    Интересно, пошел пробовать screen. Спасибо!
     
     Top
    Страниц (1): [1]
    Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
    « Вопросы и решение проблем »


    Все гости форума могут просматривать этот раздел.
    Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
    Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
     




    Powered by