Author Topic: IF_PICTURE_IN и несколько картинок  (Read 2466 times)

0 Members and 1 Guest are viewing this topic.

Дядя Саша

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
IF_PICTURE_IN и несколько картинок
« on: December 09, 2016, 12:36:31 AM »
Доброго времени суток.

Есть некоторая область экрана размером 100*100, на которой произвольно появляется одна из картинок размером 15*15 пикселей. Всего таких картинок 5. При обнаружении такой картинки нужно кликнуть в произвольное место в пределах этой картинки.

Вопрос: могу ли я сделать это таким (или каким-либо подобным) образом:

Code: (clickermann) [Select]
SEARCH:
GETSCREEN
IF_PICTURE_IN(0,0,99,99,"PICTURE_1.BMP","PICTURE_2.BMP","PICTURE_3.BMP","PICTURE_4.BMP","PICTURE_5.BMP")
LCLICK($_RETURN1+RND(0,14),$_RETURN2+RND(0,14))
ELSE
GOTO(SEARCH)

Или же придётся делать это так:

Code: (clickermann) [Select]
SEARCH_1:
GETSCREEN
IF_PICTURE_IN(0,0,99,99,"PICTURE_1.BMP",)
LCLICK($_RETURN1+RND(0,14),$_RETURN2+RND(0,14))
ELSE
GOTO(SEARCH_2)

SEARCH_2:
GETSCREEN
IF_PICTURE_IN(0,0,99,99,"PICTURE_2.BMP",)
LCLICK($_RETURN1+RND(0,14),$_RETURN2+RND(0,14))
ELSE
GOTO(SEARCH_3)

SEARCH_3:
GETSCREEN
IF_PICTURE_IN(0,0,99,99,"PICTURE_3.BMP",)
LCLICK($_RETURN1+RND(0,14),$_RETURN2+RND(0,14))
ELSE
GOTO(SEARCH_4)

SEARCH_4:
GETSCREEN
IF_PICTURE_IN(0,0,99,99,"PICTURE_4.BMP",)
LCLICK($_RETURN1+RND(0,14),$_RETURN2+RND(0,14))
ELSE
GOTO(SEARCH_5)

SEARCH_5:
GETSCREEN
IF_PICTURE_IN(0,0,99,99,"PICTURE_5.BMP",)
LCLICK($_RETURN1+RND(0,14),$_RETURN2+RND(0,14))
ELSE
GOTO(SEARCH_1)

Заранее спасибо за ответ.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: IF_PICTURE_IN и несколько картинок
« Reply #1 on: December 09, 2016, 06:22:06 AM »
Можно вкладывать условия друг в друга, или можно написать цикл.
Code: (clickermann) [Select]
GETSCREEN
FOR($n=1,$n<6)
   IF_PICTURE_IN (0,0, 100,100, STRCONCAT("PICTURE_", $n, ".BMP"), -1, 100)
      LCLICK($_RETURN1+RND(0,14),$_RETURN2+RND(0,14))
      WAITMS(100)
      $n=9999
   END_IF
END_CYC

Если требуется искать пока не найдем то нужен еще один цикл
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   FOR($n=1,$n<6)
      IF_PICTURE_IN (0,0, 100,100, STRCONCAT("PICTURE_", $n, ".BMP"), -1, 100)
         LCLICK($_RETURN1+RND(0,14),$_RETURN2+RND(0,14))
         WAITMS(100)
         $check = 1
         $n=9999
      END_IF
   END_CYC
END_CYC

Дядя Саша

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: IF_PICTURE_IN и несколько картинок
« Reply #2 on: December 13, 2016, 09:28:45 AM »
Спасибо! Даже не ожидал такой оперативности!