Author Topic: массив  (Read 1781 times)

0 Members and 2 Guests are viewing this topic.

andrei

  • Освоившийся
  • **
  • Posts: 49
    • View Profile
массив
« on: January 24, 2017, 10:33:56 PM »
прошу помощи!
задача такая, ищем одну из 6 картинок из массива, если не нашли делаем клик   LCLICK(1810,925) перелистываем и опять ищем,процесс должен завершится после того как нашли одну из картинок  из массива или по ограничению циклов поиска (35), но что то идет не так, процесс завершается после 6 перелистываний. что то я не так на сделал )))


Code: (clickermann) [Select]
$arr[0] = "BMP\A032.bmp" // Названия картинок, включая относительный путь, помещаем в массив
    $arr[1] = "BMP\A033.bmp"
    $arr[2] = "BMP\A030.bmp"
    $arr[3] = "BMP\A031.bmp"
    $arr[4] = "BMP\005.bmp"
    $arr[5] = "BMP\006.bmp"

 
$check = 0
    WHILE($check = 0)
        GETSCREEN
        COLORMODE(6)

   FOR($i = 0, $i < 6) // Выполнится 6 раз (по количеству искомых картинок в массиве) и без задержек
          IF_PICTURE_IN (0,0,200,60, $arr[$i], -1, 80) // красный крестик
$check = 1
   
               LCLICK(1000,540)
   
        WAITMS(500)
             $i = 6 // Завершаем поиск, если изображение найдено
             
             ELSE
    waitms(500)
            LCLICK(1810,925)
       WAITMS(4000)     
             
         
  INC($skript_count,1)  ///ограничение     циклов
   IF($skript_count = 35) //количество циклов
   $skript_count = 0


    reset()
  wait(1)
    goto (m1)
 
END_IF     
             END_IF
END_CYC   
 

спасибо))

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: массив
« Reply #1 on: January 24, 2017, 11:19:35 PM »
в редакторе кликера есть кнопка "расставить отступы" - волшебная палочка. жмякай ее, и увидишь, что не хватает одного завершения цикла. выпрыгивать из цикла(ов) на метку по Goto категорически запрещено, будут проблемы.
а вообще, алгоритм твой какойто замудреный. вот написал чисто по твоему описанию:
Quote
ищем одну из 6 картинок из массива, если не нашли делаем клик   LCLICK(1810,925) перелистываем и опять ищем,процесс должен завершится после того как нашли одну из картинок  из массива или по ограничению циклов поиска (35)
Code: (clickermann) [Select]
$arr[0] = "BMP\A032.bmp" // Названия картинок, включая относительный путь, помещаем в массив
$arr[1] = "BMP\A033.bmp"
$arr[2] = "BMP\A030.bmp"
$arr[3] = "BMP\A031.bmp"
$arr[4] = "BMP\005.bmp"
$arr[5] = "BMP\006.bmp"


FOR($skript_count = 0, $skript_count < 35) //проверяем 35 раз

   GETSCREEN
   COLORMODE(6)
   FOR($i = 0, $i < ARRSIZE($arr))    //выполнится столько раз, сколько элементов в массиве.
      IF_PICTURE_IN (0,0,200,60, $arr[$i], -1, 80)
         LCLICK(1000,540) // если нашли одну из картинок, чегото жмем
         WAITMS(500)
         
         $i = 999999           // и завершаем циклы.
         $skript_count = 999999
      END_IF
   END_CYC
   
   IF($i = ARRSIZE($arr))   //если не найдено ниодной картинки из тех что в массиве
      waitms(500)
      LCLICK(1810,925)       //перелистываем
      WAITMS(4000)
   END_IF
     
END_CYC

//а уже после завершения циклов, можно делать другие действия и  прыгать на метки.
//возможно потребуется добавить условия выполнения этих действий. (процесс должен завершится после того как нашли одну из картинок  из массива или по ограничению циклов поиска 35)
// а вот что должно произойти если картинка нашлась ... или если не нашлась, ты не написал
reset()
wait(1)
goto (m1)

andrei

  • Освоившийся
  • **
  • Posts: 49
    • View Profile
Re: массив
« Reply #2 on: January 24, 2017, 11:42:53 PM »
спасибо)))
если картинка нашлась то выполняем скрипт дальше , а вот если не нашлась , то нужно сделать перезагрузку браузера это подпрограмма reset() и потом перейти на метку goto (m1)
если в двух словах то ищем одну из картинок с массива, если ничего не нашли то перелистываем и опять ищем , и так пока не найдем или пока не наступит второе условие ,перелистнули 35 раз. если картинку нашли то делаем клик и выполняем скрипт дальше , а если пролистали 35 раз и не нашли то нужно перезагрузить и перейти на метку m1. вот как то так. я не художник, я только учусь )) вот по этому у меня такой корявый скрипт  ;D

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: массив
« Reply #3 on: January 24, 2017, 11:54:25 PM »
вот теперь понятнее. всё просто  :
Code: (clickermann) [Select]
$arr[0] = "BMP\A032.bmp" // Названия картинок, включая относительный путь, помещаем в массив
$arr[1] = "BMP\A033.bmp"
$arr[2] = "BMP\A030.bmp"
$arr[3] = "BMP\A031.bmp"
$arr[4] = "BMP\005.bmp"
$arr[5] = "BMP\006.bmp"


FOR($skript_count = 0, $skript_count < 35) //проверяем 35 раз
   
   GETSCREEN
   COLORMODE(6)
   FOR($i = 0, $i < ARRSIZE($arr))    //выполнится столько раз, сколько элементов в массиве.
      IF_PICTURE_IN (0,0,200,60, $arr[$i], -1, 80)
         LCLICK(1000,540) // если нашли одну из картинок, чегото жмем
         WAITMS(500)
         
         $i = 999999           // и завершаем циклы.
         $skript_count = 999999
      END_IF
   END_CYC
   
   IF($i = ARRSIZE($arr))   //если не найдено ниодной картинки из тех что в массиве
      waitms(500)
      LCLICK(1810,925)       //перелистываем
      WAITMS(4000)
   END_IF
   
END_CYC

IF($skript_count = 35) // если картинка не найдена за 35 пролистываний
   reset()       //то перезагрузка и прыжок
   wait(1)
   goto (m1)
END_IF

//тут выполняем скрипт дальше, если одна из картинок всеже нашлась.


andrei

  • Освоившийся
  • **
  • Posts: 49
    • View Profile
Re: массив
« Reply #4 on: January 24, 2017, 11:56:47 PM »
ОГРОМНОЕ СПАСИБО!!!