Author Topic: Номер картинки  (Read 2379 times)

0 Members and 1 Guest are viewing this topic.

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Номер картинки
« 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)

4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: Номер картинки
« Reply #1 on: February 04, 2021, 04:48:56 PM »
Привет!
После SCANPICTURE вставь такую строку:
Code: (clickermann) [Select]
LOGWRITE(STRCONCAT("Картинка ", $Varr, ".bmp", " найдена ", ARRSIZE($ARR_SCAN)/2, " раз"))

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Номер картинки
« Reply #2 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


Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Номер картинки
« Reply #3 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)

4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: Номер картинки
« Reply #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

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Номер картинки
« Reply #5 on: February 04, 2021, 06:17:15 PM »
О спасибо), в моем примере тоже выход из цикла был, еще раз спасибо за оперативность)

4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: Номер картинки
« Reply #6 on: February 04, 2021, 07:21:17 PM »
в моем примере тоже выход из цикла был
да, точно, сорри, проглядел я, поспешил)