Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Ramzesia on February 04, 2021, 02:18:19 PM

Title: Номер картинки
Post by: Ramzesia on February 04, 2021, 02:18:19 PM
Всем привет прошу помочь, не как не могу разобраться с массивами, как то они сложны для меня. Скрипт есть, нужно определить какая картинка найдена.
Есть 20 картинок, точнее скрины цыфр от 1 до 20, мне нужно что бы из данного скрипта в лог писало какая цифра нашлась.
Code: (clickermann) [Select]
FOR($Varr = 1, $Varr < 21)
   GETSCREEN
   SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, STRCONCAT($Varr, ".bmp"), -1, 100)
   $scan_size = ARRSIZE($ARR_SCAN)
   FOR($ARR_NUM=0, $ARR_NUM < $scan_size, 2)
      $X = $ARR_SCAN[$ARR_NUM]
      $Y = $ARR_SCAN[$ARR_NUM+1]
      LCLICK($X + 3, $Y + 3)
      WAITMS(100)
   END_CYC
   UNDEFINE($ARR_SCAN)
   WAITMS(50)
END_CYC

LOGWRITE ($Varr)
Title: Re: Номер картинки
Post by: 4.У.В.@.К on February 04, 2021, 04:48:56 PM
Привет!
После SCANPICTURE вставь такую строку:
Code: (clickermann) [Select]
LOGWRITE(STRCONCAT("Картинка ", $Varr, ".bmp", " найдена ", ARRSIZE($ARR_SCAN)/2, " раз"))
Title: Re: Номер картинки
Post by: Ramzesia on February 04, 2021, 05:10:56 PM
Спасибо за ответ, я тут подумал, возможно мне нужно совсем не это, меня все же устроит вариант, записать номер в переменную. Опишу что конкретно мне нужно. Есть картинка точнее цифры от 1 до 20, я сделал нарезки всех 20 цифр, и нужно определить какая цифра на картинке и записать ее в переменную, для дальнейшего использования.
Нужно вот такое только в компактном виде, ниче не пришло в голову :(
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp")
   $Lvl = 1
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp")
      $Lvl = 2
   ELSE
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "3.bmp")
         $Lvl = 3
      ELSE
         IF_PICTURE_IN (0,0, $_xmax,$_ymax, "4.bmp")
            $Lvl = 4
         ELSE
            IF_PICTURE_IN (0,0, $_xmax,$_ymax, "5.bmp")
               $Lvl = 5
               // И так 20 раз
            END_IF
         END_IF
      END_IF
   END_IF
END_IF

Title: Re: Номер картинки
Post by: Ramzesia on February 04, 2021, 05:23:50 PM
Так можно сделать?
Code: (clickermann) [Select]
$Lvl = 0
GETSCREEN
FOR($Var = 1, $Var < 21)
   INC($Lvl)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT($Var, ".bmp"), -1, 100)
      $Var = 777
   END_IF
END_CYC

LOGWRITE ("Картинка №",$Lvl)
Title: Re: Номер картинки
Post by: 4.У.В.@.К on February 04, 2021, 05:36:14 PM
Да, или лучше выйти из цикла, чтобы ничего не искать, после того, как будет найдена одна из картинок.
Code: (clickermann) [Select]
GETSCREEN
FOR($Lvl = 1, $Lvl < 21)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT($Lvl, ".bmp"))
      $result = $Lvl // запоминаем имя найденной картинки
      $Lvl = 99 // завершаем цикл
   END_IF
END_CYC

LOGWRITE ($result, ".bmp")

HALT
Title: Re: Номер картинки
Post by: Ramzesia on February 04, 2021, 06:17:15 PM
О спасибо), в моем примере тоже выход из цикла был, еще раз спасибо за оперативность)
Title: Re: Номер картинки
Post by: 4.У.В.@.К on February 04, 2021, 07:21:17 PM
в моем примере тоже выход из цикла был
да, точно, сорри, проглядел я, поспешил)