Author Topic: "Сложный" код по поиску картинок  (Read 4609 times)

0 Members and 4 Guests are viewing this topic.

andre1987

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
"Сложный" код по поиску картинок
« on: August 19, 2022, 09:52:23 AM »
Всем доброго дня! Помогите пожалуйста написать код по поиску картинок.
Есть такие условия. Картинки будут искаться каждая в своей небольшой области экрана(чтобы снизить нагрузку на старенький комп). Действия по каждой картинке будут не однотипными(на некоторых просто клик, на некоторых несколько кликов и ввод текста).
Вот собственно сама хотелка)

картинка1 если нашлась то переходим к поиску картинки картинка1-1, если не нашлась то к поиску картинка2
картинка1-1 искать только если найдена картинка1
картинка1-2 искать только после картинки1-1
каринка1-3 искать только после картинки1-2
картинка1-4 искать только после картинки1-3. если найдена то искать картинка2

картинка2 если найдена, то ищем картинка2-1, если не найдена то ищем картинка2клон. если не найдены обе то ищем картинка1
картинка2клон ищем "вместо" картинки2.если найдена то ищем картинка2-1 , если не найдена то ищем картинка1
картинка2-1 искать только если найдена картинка2 или картинка2клон
картинка2-2 искать только если найдена картинка2-1
картинка2-3 искать только если найдена картинка2-2 . если найдена то искать картинка3

картинка3 если найдена, то ищем картинка3-1, если не найдена то ищем картинка3клон. если не найдены обе то ищем картинка1
картинка3клон ищем "вместо" картинки3.если найдена то ищем картинка3-1 , если не найдена то ищем картинка1
картинка3-1 искать только если найдена картинка3 или картинка3клон
картинка3-2 искать только если найдена картинка3-1
картинка3-3 искать только если найдена картинка3-2 .если найдена то ищем картинка4

картинка4 если найдена, то ищем картинка4-1, если не найдена то ищем картинка4клон. если не найдены обе то ищем картинка1
картинка4клон ищем "вместо" картинки4.если найдена то ищем картинка4-1 , если не найдена то ищем картинка1
картинка4-1 искать только если найдена картинка4 или картинка4клон
картинка4-2 искать только если найдена картинка4-1
картинка4-3 искать только если найдена картинка4-2 .если найдена то ищем картинка2

Также нужно нажатие цифры 8 через каждые 20-25 секунд и цифры 2 через каждые 40-45 секунд.

andre1987

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: "Сложный" код по поиску картинок
« Reply #1 on: August 31, 2022, 04:54:33 PM »
Гм,немного недоумения в студию! Всем тут пох на вопросы? Или задача из ряда вон выходящая? Или может где то нарушения правил форума? Или может настолько типовой код что написать легче лёгкого? Объясните пожалуйста свое равнодушие, о светочи!

Иван_Васильевич

  • Освоившийся
  • **
  • Posts: 72
    • View Profile
Re: "Сложный" код по поиску картинок
« Reply #2 on: August 31, 2022, 07:08:57 PM »
Или может настолько типовой код что написать легче лёгкого? Объясните пожалуйста свое равнодушие, о светочи!
да код объёмный, но шаблонный, он просто никого не заинтересовал, а обязаловки по быстрой реакции на сообщения, тут вроде как нет.
Даже странно, что Вы самостоятельно, за столько времени его не написали или не нашли специалиста, для быстрого  решения своих задач.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: "Сложный" код по поиску картинок
« Reply #3 on: September 01, 2022, 09:00:18 AM »
Задача, действительно не заинтересовала.
Она более, чем полностью будет состоять из шаблонов.

картинка1-4 искать только после картинки1-3. если найдена то искать картинка2
А если не найдена?

1-1, 1-2, 1-3 (и дальше аналогичные)
непонятна фраза "искать только после картинки1-1". Она в задании ищется и так после 1-1. Может должно быть ожидание обязательного появления 1-1, т.е. 1-1 появится обязательно, только не сразу и её нужно ждать? А если не появится, что делать?

Или всё по другому, ничего ждать не нужно. Если нашлась 1-1 то ищем 1-2, если нашлась 1-2 ищем 1-3... Тогда не указано куда переходить если не найдены эти промежуточные этапы.
« Last Edit: September 01, 2022, 09:03:24 AM by Vint »


andre1987

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: "Сложный" код по поиску картинок
« Reply #4 on: September 01, 2022, 01:42:16 PM »
А если не найдена?
Если не найдена, то также искать картинка2
картинка2-3 искать только если найдена картинка2-2 . если найдена то искать картинка3, не найдена картинка1
картинка3-3 искать только если найдена картинка3-2 .если найдена то ищем картинка4,не найдена картинка1
картинка4-3 искать только если найдена картинка4-2 .если найдена то ищем картинка2,не найдена картинка1
Все картинки с префиксом "-" должны искаться только после картинок без этого префикса. То есть если в "ряде" картинок: картинка1,картинка1-1 и тд нет "первой" картинка1, то мы все остальные с "-"(картинка1-1,картинка1-2,картинка1-3,картинка1-4) не ищем. И так же со всеми остальными:если не появлялась картинка1-1, то к поиску картинка1-2 не переходим(не было картинка1-2 не переходим к поиску 1-3 и тд). Все картинки с "-" появляются обязательно, если не появилась то ничего не делаем(код зависает и пока дальше этого я не доходил :o)

andre1987

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: "Сложный" код по поиску картинок
« Reply #5 on: September 01, 2022, 01:45:52 PM »
Может должно быть ожидание обязательного появления 1-1, т.е. 1-1 появится обязательно, только не сразу и её нужно ждать? А если не появится, что делать?
Да, именно обязательное появления каждой в "группе"(1,1-1,1-2 и тд). И может появиться на сразу, то есть не спустя секунду после предыдущей а через секунд 5-10 или больше. А если не появилась, то ничего не делать :-\получается что код будет "висеть"...так можно?

andre1987

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: "Сложный" код по поиску картинок
« Reply #6 on: September 01, 2022, 01:49:51 PM »
Или может настолько типовой код что написать легче лёгкого? Объясните пожалуйста свое равнодушие, о светочи!
да код объёмный, но шаблонный, он просто никого не заинтересовал, а обязаловки по быстрой реакции на сообщения, тут вроде как нет.
Даже странно, что Вы самостоятельно, за столько времени его не написали или не нашли специалиста, для быстрого  решения своих задач.
Да, прошу прощения у всех присутствующих за повышенный тон! Просто все что у меня получилось не работает "как надо". Ищутся картинки, которые не должны искаться(то есть не в свою очередь) и наоборот не ищутся те, которые должны. Пока что пришлось просто произвести запись действий мыши и клавиатуры((но в таком варианте все настолько не по сценарию что приходится каждые 10 минут останавливать кликер и перезапускать, т.к. уже совсем не в том месте все происходит

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: "Сложный" код по поиску картинок
« Reply #7 on: September 02, 2022, 09:29:22 AM »
В задании содержится противоречие.

Вот этот ответ:

картинка1-4 искать только после картинки1-3. если найдена то искать картинка2
А если не найдена?
Если не найдена, то также искать картинка2

противоречит вот этому:
Все картинки с "-" появляются обязательно, если не появилась то ничего не делаем(код зависает и пока дальше этого я не доходил :o)


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: "Сложный" код по поиску картинок
« Reply #8 on: September 02, 2022, 10:12:04 AM »
Если придерживаться второго варианта ответа, то код может быть такой:

Code: (clickermann) [Select]
#name "andre1987"
// Author: Vint
// Version: 0.1 (02.09.2022)
// Скрипт для Clickermann v4.13.014
// http://crapware.aidf.org/forum/index.php?topic=5709.0


THREAD(key8, 1)
    KEYPRESS(#8)
    WAIT(RND(20, 25))
END_THREAD

THREAD(key2, 1)
    KEYPRESS(#2)
    WAIT(RND(40, 45))
END_THREAD

SUB(WAITING_PIC, $wp_x1, $wp_y1, $wp_x2, $wp_y2, $wp_image, $wp_percent, $wp_colorm)
    $wp_check = 0
    WHILE($wp_check = 0)
        GETSCREEN($wp_x1, $wp_y1, $wp_x2, $wp_y2)
        IF($wp_colorm ! 0)
            COLORMODE($wp_colorm, $wp_x1,$wp_y1,$wp_x2,$wp_y2)
        END_IF
        IF_PICTURE_IN($wp_x1,$wp_y1,$wp_x2,$wp_y2,$wp_image,-1,$wp_percent)
            $wp_check = 1
            LOGWRITE("Найдена картинка  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
        ELSE
            WAITMS(50)
        END_IF
    END_CYC
END_SUB

//‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡


// part 1
part_1:
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка1.bmp", -1,100)
    LOGWRITE("Найдена картинка1  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
    // действия - нашлась картинка1
   
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-1.bmp", 100, 0)
    // действия - нашлась картинка1-1
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-2.bmp", 100, 0)
    // действия - нашлась картинка1-2
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-3.bmp", 100, 0)
    // действия - нашлась картинка1-3
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-4.bmp", 100, 0)
    // действия - нашлась картинка1-4
END_IF


// part 2
part_2:
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка2.bmp", -1,100)
ELSE
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка2клон.bmp", -1,100)
    ELSE
        GOTO(part_1)
    END_IF
END_IF
LOGWRITE("Найдена картинка2[клон]  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
// действия - нашлась картинка2 или картинка2клон

WAITING_PIC(0,0, $_xmax,$_ymax, "картинка2-1.bmp", 100, 0)
// действия - нашлась картинка2-1
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка2-2.bmp", 100, 0)
// действия - нашлась картинка2-2
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка2-3.bmp", 100, 0)
// действия - нашлась картинка2-3


// part 3
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка3.bmp", -1,100)
ELSE
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка3клон.bmp", -1,100)
    ELSE
        GOTO(part_1)
    END_IF
END_IF
LOGWRITE("Найдена картинка3[клон]  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
// действия - нашлась картинка3 или картинка3клон

WAITING_PIC(0,0, $_xmax,$_ymax, "картинка3-1.bmp", 100, 0)
// действия - нашлась картинка3-1
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка3-2.bmp", 100, 0)
// действия - нашлась картинка3-2
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка3-3.bmp", 100, 0)
// действия - нашлась картинка3-3


// part 4
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка4.bmp", -1,100)
ELSE
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка4клон.bmp", -1,100)
    ELSE
        GOTO(part_1)
    END_IF
END_IF
LOGWRITE("Найдена картинка4[клон]  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
// действия - нашлась картинка4 или картинка4клон

WAITING_PIC(0,0, $_xmax,$_ymax, "картинка4-1.bmp", 100, 0)
// действия - нашлась картинка4-1
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка4-2.bmp", 100, 0)
// действия - нашлась картинка4-2
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка4-3.bmp", 100, 0)
// действия - нашлась картинка4-3
GOTO(part_2)


HALT
« Last Edit: September 02, 2022, 10:18:35 AM by Vint »


andre1987

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: "Сложный" код по поиску картинок
« Reply #9 on: September 05, 2022, 11:21:55 AM »
Если придерживаться второго варианта ответа, то код может быть такой:

Code: (clickermann) [Select]
#name "andre1987"
// Author: Vint
// Version: 0.1 (02.09.2022)
// Скрипт для Clickermann v4.13.014
// http://crapware.aidf.org/forum/index.php?topic=5709.0


THREAD(key8, 1)
    KEYPRESS(#8)
    WAIT(RND(20, 25))
END_THREAD

THREAD(key2, 1)
    KEYPRESS(#2)
    WAIT(RND(40, 45))
END_THREAD

SUB(WAITING_PIC, $wp_x1, $wp_y1, $wp_x2, $wp_y2, $wp_image, $wp_percent, $wp_colorm)
    $wp_check = 0
    WHILE($wp_check = 0)
        GETSCREEN($wp_x1, $wp_y1, $wp_x2, $wp_y2)
        IF($wp_colorm ! 0)
            COLORMODE($wp_colorm, $wp_x1,$wp_y1,$wp_x2,$wp_y2)
        END_IF
        IF_PICTURE_IN($wp_x1,$wp_y1,$wp_x2,$wp_y2,$wp_image,-1,$wp_percent)
            $wp_check = 1
            LOGWRITE("Найдена картинка  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
        ELSE
            WAITMS(50)
        END_IF
    END_CYC
END_SUB

//‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡


// part 1
part_1:
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка1.bmp", -1,100)
    LOGWRITE("Найдена картинка1  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
    // действия - нашлась картинка1
   
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-1.bmp", 100, 0)
    // действия - нашлась картинка1-1
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-2.bmp", 100, 0)
    // действия - нашлась картинка1-2
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-3.bmp", 100, 0)
    // действия - нашлась картинка1-3
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-4.bmp", 100, 0)
    // действия - нашлась картинка1-4
END_IF


// part 2
part_2:
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка2.bmp", -1,100)
ELSE
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка2клон.bmp", -1,100)
    ELSE
        GOTO(part_1)
    END_IF
END_IF
LOGWRITE("Найдена картинка2[клон]  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
// действия - нашлась картинка2 или картинка2клон

WAITING_PIC(0,0, $_xmax,$_ymax, "картинка2-1.bmp", 100, 0)
// действия - нашлась картинка2-1
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка2-2.bmp", 100, 0)
// действия - нашлась картинка2-2
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка2-3.bmp", 100, 0)
// действия - нашлась картинка2-3


// part 3
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка3.bmp", -1,100)
ELSE
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка3клон.bmp", -1,100)
    ELSE
        GOTO(part_1)
    END_IF
END_IF
LOGWRITE("Найдена картинка3[клон]  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
// действия - нашлась картинка3 или картинка3клон

WAITING_PIC(0,0, $_xmax,$_ymax, "картинка3-1.bmp", 100, 0)
// действия - нашлась картинка3-1
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка3-2.bmp", 100, 0)
// действия - нашлась картинка3-2
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка3-3.bmp", 100, 0)
// действия - нашлась картинка3-3


// part 4
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка4.bmp", -1,100)
ELSE
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка4клон.bmp", -1,100)
    ELSE
        GOTO(part_1)
    END_IF
END_IF
LOGWRITE("Найдена картинка4[клон]  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
// действия - нашлась картинка4 или картинка4клон

WAITING_PIC(0,0, $_xmax,$_ymax, "картинка4-1.bmp", 100, 0)
// действия - нашлась картинка4-1
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка4-2.bmp", 100, 0)
// действия - нашлась картинка4-2
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка4-3.bmp", 100, 0)
// действия - нашлась картинка4-3
GOTO(part_2)


HALT
Спасибо большое за проделанную работу!
А можно без кардинального изменения кода добавить поиск картинки с таким условием:
Картинка "ПРИОРИТЕТ1" должна искаться сразу как появится, независимо от того, в какой части кода идет поиск "сейчас", но после выполнения действий по уже найденной картинке. То есть нашлась картинка2.bmp(или любая другая)-выполнилась и если в это время(при выполнении действий по картинке картинка2.bmp или любой другой) появилась ПРИОРИТЕТ1, то найти сначала ее а потом уже картинка2-1(или любая другая, которая идет по порядку в уже написанном коде).

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: "Сложный" код по поиску картинок
« Reply #10 on: September 05, 2022, 12:53:46 PM »
Если область поиска будет задаваться разная, для разных картинок, то код будет один, если всё ищется по всему экрану - то может быть другой.

В среднем по больнице будет такой:
Code: (clickermann) [Select]
#name "andre1987"
// Author: Vint
// Version: 0.2 (05.09.2022)
// Скрипт для Clickermann v4.13.014
// http://crapware.aidf.org/forum/index.php?topic=5709.0


THREAD(key8, 1)
    KEYPRESS(#8)
    WAIT(RND(20, 25))
END_THREAD

THREAD(key2, 1)
    KEYPRESS(#2)
    WAIT(RND(40, 45))
END_THREAD

SUB(priority)
    GETSCREEN
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "ПРИОРИТЕТ1.bmp", -1,100)
        // действия - нашлась ПРИОРИТЕТ1
        WAITMS(100)
    END_IF
END_SUB

SUB(WAITING_PIC, $wp_x1, $wp_y1, $wp_x2, $wp_y2, $wp_image, $wp_percent, $wp_colorm)
    $wp_check = 0
    WHILE($wp_check = 0)
        priority()
        GETSCREEN($wp_x1, $wp_y1, $wp_x2, $wp_y2)
        IF($wp_colorm ! 0)
            COLORMODE($wp_colorm, $wp_x1,$wp_y1,$wp_x2,$wp_y2)
        END_IF
        IF_PICTURE_IN($wp_x1,$wp_y1,$wp_x2,$wp_y2,$wp_image,-1,$wp_percent)
            $wp_check = 1
            LOGWRITE("Найдена картинка  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
        ELSE
            WAITMS(50)
        END_IF
    END_CYC
END_SUB

//‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡


// part 1
part_1:
priority()
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка1.bmp", -1,100)
    LOGWRITE("Найдена картинка1  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
    // действия - нашлась картинка1
   
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-1.bmp", 100, 0)
    // действия - нашлась картинка1-1
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-2.bmp", 100, 0)
    // действия - нашлась картинка1-2
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-3.bmp", 100, 0)
    // действия - нашлась картинка1-3
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-4.bmp", 100, 0)
    // действия - нашлась картинка1-4
END_IF


// part 2
part_2:
priority()
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка2.bmp", -1,100)
ELSE
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка2клон.bmp", -1,100)
    ELSE
        GOTO(part_1)
    END_IF
END_IF
LOGWRITE("Найдена картинка2[клон]  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
// действия - нашлась картинка2 или картинка2клон

WAITING_PIC(0,0, $_xmax,$_ymax, "картинка2-1.bmp", 100, 0)
// действия - нашлась картинка2-1
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка2-2.bmp", 100, 0)
// действия - нашлась картинка2-2
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка2-3.bmp", 100, 0)
// действия - нашлась картинка2-3


// part 3
priority()
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка3.bmp", -1,100)
ELSE
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка3клон.bmp", -1,100)
    ELSE
        GOTO(part_1)
    END_IF
END_IF
LOGWRITE("Найдена картинка3[клон]  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
// действия - нашлась картинка3 или картинка3клон

WAITING_PIC(0,0, $_xmax,$_ymax, "картинка3-1.bmp", 100, 0)
// действия - нашлась картинка3-1
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка3-2.bmp", 100, 0)
// действия - нашлась картинка3-2
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка3-3.bmp", 100, 0)
// действия - нашлась картинка3-3


// part 4
priority()
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка4.bmp", -1,100)
ELSE
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка4клон.bmp", -1,100)
    ELSE
        GOTO(part_1)
    END_IF
END_IF
LOGWRITE("Найдена картинка4[клон]  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
// действия - нашлась картинка4 или картинка4клон

WAITING_PIC(0,0, $_xmax,$_ymax, "картинка4-1.bmp", 100, 0)
// действия - нашлась картинка4-1
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка4-2.bmp", 100, 0)
// действия - нашлась картинка4-2
WAITING_PIC(0,0, $_xmax,$_ymax, "картинка4-3.bmp", 100, 0)
// действия - нашлась картинка4-3
GOTO(part_2)


HALT


andre1987

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: "Сложный" код по поиску картинок
« Reply #11 on: September 18, 2022, 01:08:29 PM »
Если область поиска будет задаваться разная, для разных картинок, то код будет один, если всё ищется по всему экрану - то может быть другой.
Наконец то получилось затестить код)) Спасибо большое за работу! Все работает)) Только я наконец то дошел до места "зависания" кода если какая то из картинок не найдена... Понял о чем была речь когда начал тестить. Можно добавить условие чтобы если какая либо из картинок  с префиксом "-" не появилась(кроме картинок в части // part 1) выполнялся поиск картинка1

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: "Сложный" код по поиску картинок
« Reply #12 on: September 19, 2022, 09:14:42 AM »
Code: (clickermann) [Select]
#name "andre1987"
// Author: Vint
// Version: 0.3 (19.09.2022)
// Скрипт для Clickermann v4.13.014
// http://crapware.aidf.org/forum/index.php?topic=5709.0


// время в течении которого ищется картинка с префиксом "-", мс
$wp_limit = 5000

THREAD(key8, 1)
    KEYPRESS(#8)
    WAIT(RND(20, 25))
END_THREAD

THREAD(key2, 1)
    KEYPRESS(#2)
    WAIT(RND(40, 45))
END_THREAD

SUB(priority)
    GETSCREEN
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "ПРИОРИТЕТ1.bmp", -1,100)
        // действия - нашлась ПРИОРИТЕТ1
        WAITMS(100)
    END_IF
END_SUB

SUB(WAITING_PIC, $wp_x1, $wp_y1, $wp_x2, $wp_y2, $wp_image, $wp_percent, $wp_colorm)
    $wp_check = 0
    WHILE($wp_check = 0)
        priority()
        GETSCREEN($wp_x1, $wp_y1, $wp_x2, $wp_y2)
        IF($wp_colorm ! 0)
            COLORMODE($wp_colorm, $wp_x1,$wp_y1,$wp_x2,$wp_y2)
        END_IF
        IF_PICTURE_IN($wp_x1,$wp_y1,$wp_x2,$wp_y2,$wp_image,-1,$wp_percent)
            $wp_check = 1
            LOGWRITE("Найдена картинка  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
        ELSE
            WAITMS(50)
        END_IF
    END_CYC
END_SUB

SUB(WAITING_PIC_LIMIT, $wpl_x1, $wpl_y1, $wpl_x2, $wpl_y2, $wpl_image, $wpl_percent, $wpl_colorm)
    $wpl_time = $_ms + $wp_limit
    WHILE($wpl_time > $_ms)
        priority()
        GETSCREEN($wpl_x1, $wpl_y1, $wpl_x2, $wpl_y2)
        IF($wpl_colorm ! 0)
            COLORMODE($wpl_colorm, $wpl_x1,$wpl_y1,$wpl_x2,$wpl_y2)
        END_IF
        IF_PICTURE_IN($wpl_x1,$wpl_y1,$wpl_x2,$wpl_y2,$wpl_image,-1,$wpl_percent)
            $wpl_time = 0
            LOGWRITE("Найдена картинка  ",$wpl_image," в X/Y ",$_return1," / ",$_return2)
        ELSE
            WAITMS(50)
        END_IF
    END_CYC
    IF($wpl_time != 0)  // время истекло, картинка не найдена
        LOGWRITE("время истекло, картинка ", $wpl_image, " не найдена за ", $wp_limit, " ms")
    END_IF
END_SUB

//‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡


// part 1
part_1:
priority()
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка1.bmp", -1,100)
    LOGWRITE("Найдена картинка1  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
    // действия - нашлась картинка1
   
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-1.bmp", 100, 0)
    // действия - нашлась картинка1-1
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-2.bmp", 100, 0)
    // действия - нашлась картинка1-2
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-3.bmp", 100, 0)
    // действия - нашлась картинка1-3
    WAITING_PIC(0,0, $_xmax,$_ymax, "картинка1-4.bmp", 100, 0)
    // действия - нашлась картинка1-4
END_IF


// part 2
part_2:
priority()
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка2.bmp", -1,100)
ELSE
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка2клон.bmp", -1,100)
    ELSE
        GOTO(part_1)
    END_IF
END_IF
LOGWRITE("Найдена картинка2[клон]  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
// действия - нашлась картинка2 или картинка2клон

WAITING_PIC_LIMIT(0,0, $_xmax,$_ymax, "картинка2-1.bmp", 100, 0)
IF($wpl_time != 0)  // время истекло, картинка не найдена
    GOTO(part_1)
END_IF
// действия - нашлась картинка2-1
WAITING_PIC_LIMIT(0,0, $_xmax,$_ymax, "картинка2-2.bmp", 100, 0)
IF($wpl_time != 0)  // время истекло, картинка не найдена
    GOTO(part_1)
END_IF
// действия - нашлась картинка2-2
WAITING_PIC_LIMIT(0,0, $_xmax,$_ymax, "картинка2-3.bmp", 100, 0)
IF($wpl_time != 0)  // время истекло, картинка не найдена
    GOTO(part_1)
END_IF
// действия - нашлась картинка2-3


// part 3
priority()
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка3.bmp", -1,100)
ELSE
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка3клон.bmp", -1,100)
    ELSE
        GOTO(part_1)
    END_IF
END_IF
LOGWRITE("Найдена картинка3[клон]  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
// действия - нашлась картинка3 или картинка3клон

WAITING_PIC_LIMIT(0,0, $_xmax,$_ymax, "картинка3-1.bmp", 100, 0)
IF($wpl_time != 0)  // время истекло, картинка не найдена
    GOTO(part_1)
END_IF
// действия - нашлась картинка3-1
WAITING_PIC_LIMIT(0,0, $_xmax,$_ymax, "картинка3-2.bmp", 100, 0)
IF($wpl_time != 0)  // время истекло, картинка не найдена
    GOTO(part_1)
END_IF
// действия - нашлась картинка3-2
WAITING_PIC_LIMIT(0,0, $_xmax,$_ymax, "картинка3-3.bmp", 100, 0)
IF($wpl_time != 0)  // время истекло, картинка не найдена
    GOTO(part_1)
END_IF
// действия - нашлась картинка3-3


// part 4
priority()
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка4.bmp", -1,100)
ELSE
    IF_PICTURE_IN(0,0, $_xmax,$_ymax, "картинка4клон.bmp", -1,100)
    ELSE
        GOTO(part_1)
    END_IF
END_IF
LOGWRITE("Найдена картинка4[клон]  ",$wp_image," в X/Y ",$_return1," / ",$_return2)
// действия - нашлась картинка4 или картинка4клон

WAITING_PIC_LIMIT(0,0, $_xmax,$_ymax, "картинка4-1.bmp", 100, 0)
IF($wpl_time != 0)  // время истекло, картинка не найдена
    GOTO(part_1)
END_IF
// действия - нашлась картинка4-1
WAITING_PIC_LIMIT(0,0, $_xmax,$_ymax, "картинка4-2.bmp", 100, 0)
IF($wpl_time != 0)  // время истекло, картинка не найдена
    GOTO(part_1)
END_IF
// действия - нашлась картинка4-2
WAITING_PIC_LIMIT(0,0, $_xmax,$_ymax, "картинка4-3.bmp", 100, 0)
IF($wpl_time != 0)  // время истекло, картинка не найдена
    GOTO(part_1)
END_IF
// действия - нашлась картинка4-3
GOTO(part_2)


HALT