Author Topic: IF_PICTURE_IN поиск нескольких картинок помогите  (Read 8010 times)

0 Members and 2 Guests are viewing this topic.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Контрольную сумму чего ты собрался считать? Там же везде поиск. Или область поиска на 100% совпадает с размером образца?

На минуту... За минуту, можно всё изображение разобрать на атомы и собрать обратно. Что там делать минуту?
Может ты свою геометрическую прогрессию не пофиксил?


loki

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Code: (clickermann) [Select]
$toch=94 // точность поиска

// создаем 2 массива и заполняем их нулями

$count_image = 13  // количество картинок
FOR($a=0,$a<$count_image+1)
   $arr_d[$a] = 0
END_CYC

FOR($a=0,$a<$count_image+1)
   $arr_u[$a] = 0
END_CYC

SETTHREAD (down, 1) // запускаем потоки


START: // далее зацикленный скрипт

THREAD(down, 0)
   GETSCREEN
   COLORMODE(5)
   FOR($d=1,$d<ARRSIZE($arr_d))
      IF_PICTURE_IN (760,268,835,714, STRCONCAT("d",$d,".bmp"), -1, $toch)
         LCLICK(1172,317)
         LOGWRITE ("вниз ",$d)
         $arr_d[$d] = 1
         WAITMS(50)
         SCREENSHOTEX(760,268,835,714, STRCONCAT("d",$d,"_"), 0)
         WAIT(90)
         $d=ARRSIZE($arr_d) // выход из цикла
      ELSE
         IF_PICTURE_IN (760,268,835,714, STRCONCAT("u",$d,".bmp"), -1, $toch)
            LCLICK(1167,269)
            LOGWRITE ("вверх ",$d)
            $arr_u[$d] = 1
            WAITMS(50)
            SCREENSHOTEX(760,268,835,714, STRCONCAT("u",$d,"_"), 0)
            WAIT(90)
            $d=ARRSIZE($arr_d) // выход из цикла
         END_IF
      END_IF
   END_CYC
   WAITMS(100)
END_THREAD


THREAD(move, 1)
   MOVE(1073,419)
   MOVE(1070,552)
   LCLICK(1070,552)
   LOGWRITE ("подвигал")
WAIT(300)
END_THREAD

вот вообще весь скрипт
« Last Edit: February 08, 2017, 08:25:56 AM by Oraven »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Code: (clickermann) [Select]
START: // далее зацикленный скрипт
И где он? далее идут патоки которые вообще работают в стороне. Скрипт начнется заново бесконечно снова и снова заполняя нулями массивы $arr_d $arr_u без задержек приводя к бессмысленной нагрузке.

Зачем вообще эти массивы и присвоение той или иной картинки значения 1
Code: (clickermann) [Select]
$arr_d[$d] = 1Если это нигде потом не используется?

Вот так будет правильно, но вопрос с "нужностью" массивов пока не решен. Они тебе зачем?
Code: (clickermann) [Select]
$toch=94 // точность поиска

// создаем 2 массива и заполняем их нулями

$count_image = 13  // количество картинок
FOR($a=0,$a<$count_image+1)
   $arr_d[$a] = 0
END_CYC

FOR($a=0,$a<$count_image+1)
   $arr_u[$a] = 0
END_CYC

SETTHREAD (down, 1) // запускаем потоки

// далее зацикленный скрипт

WHILE(1)
   MOVE(1073,419)
   MOVE(1070,552)
   LCLICK(1070,552)
   LOGWRITE ("подвигал")
   WAIT(300)
END_CYC

THREAD(down, 0)
   GETSCREEN
   COLORMODE(5)
   FOR($d=1,$d<ARRSIZE($arr_d))
      IF_PICTURE_IN (760,268,835,714, STRCONCAT("d",$d,".bmp"), -1, $toch)
         LCLICK(1172,317)
         LOGWRITE ("вниз ",$d)
         $arr_d[$d] = 1
         WAITMS(50)
         SCREENSHOTEX(760,268,835,714, STRCONCAT("d",$d,"_"), 0)
         WAIT(90)
         $d=ARRSIZE($arr_d) // выход из цикла
      ELSE
         IF_PICTURE_IN (760,268,835,714, STRCONCAT("u",$d,".bmp"), -1, $toch)
            LCLICK(1167,269)
            LOGWRITE ("вверх ",$d)
            $arr_u[$d] = 1
            WAITMS(50)
            SCREENSHOTEX(760,268,835,714, STRCONCAT("u",$d,"_"), 0)
            WAIT(90)
            $d=ARRSIZE($arr_d) // выход из цикла
         END_IF
      END_IF
   END_CYC
   WAITMS(100)
END_THREAD



Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
На вопрос о нужности массива ответа нет уже 3-ю страницу.

После каждого нахождения и клика пауза 90 сек. На фоне жалоб про минутное запаздывание ни на какие мысли не наводит?


loki

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
происходит так: нет кликов потом кликает когда картинка ушла уже почти к концу области анализа.
если бы пауза была после клика все бы отлично было а то по картинке которая после клика видно что кликнул с запаздыванием