Author Topic: Циклы  (Read 2985 times)

0 Members and 1 Guest are viewing this topic.

GhostSoul

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Циклы
« on: March 14, 2017, 08:15:16 PM »
Подскажите, как сделать правильно, следующую задачу:
1. Выполнения кликаний мышкой, с перерывам на 5 мин, в количестве 12 раз
потом переход к 2
2. Выполнения кликаний мышкой 1 раз
Возврат к 1

Я так понимаю тут нужно использовать:
- для перерыва WAIT (delay)

А как вот цикл на 12 раз не понятно.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Циклы
« Reply #1 on: March 14, 2017, 08:19:56 PM »
Code: (clickermann) [Select]
FOR($a=0,$a<12)
   LCLICK(10,10) // 1
   WAIT(300)
END_CYC

LCLICK(100,200) // 2
WAIT(1)

GhostSoul

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Re: Циклы
« Reply #2 on: March 14, 2017, 09:09:13 PM »
Большое спасибо.
а можно по подробнее  разжевать?
Задание № 1.
Я не очень понял с переменой "а", она каждый раз должна увеличиваться на 1
и как только станет "а" = 13 (или больше 12) то безусловный переход к другому заданию № 2.
После выполнения все заданий, все должно повторится снова.

GhostSoul

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Re: Циклы
« Reply #3 on: March 17, 2017, 01:45:12 PM »
С циклом я понял.
А как сделать переход между строками от 1 к 20 и наоборот с 20 к 5
Я понял что это goto
Но что то у меня это не работает! (((

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Циклы
« Reply #4 on: March 17, 2017, 02:24:02 PM »
"Это" что? где скрипт то?

GhostSoul

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Re: Циклы
« Reply #5 on: March 17, 2017, 03:02:50 PM »
Мне непонятен синтаксис  написания.
В Бейсики "GOTO" это безусловный переход на любую строчку кода
Как тут не совсем я понял.

Вот пример:

1. 2
2. GOTO(1)
3. WAIT(60)
4. 1
5. GOTO(2)

i0

  • Оплот сообщества
  • ****
  • Posts: 353
  • CMann 4.13.014 final, ie, presto, win7 x86, x64
    • View Profile
Re: Циклы
« Reply #6 on: March 17, 2017, 03:26:33 PM »
справку почитай, а?

GhostSoul

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Re: Циклы
« Reply #7 on: March 17, 2017, 03:39:08 PM »
Возможно можно решить по другому.
Нужен сделать цикл:
 -внутри  которого искалась на картина "БАФ" и нажималась на нее, за тем следующая картинка. (таких картинок на экране 5 штук)
- Иногда (рэндомно) на экране после нажатия картинки "БАФ" появляется окошко с призом и нужно нажать в определенное место (оно фиксисровано) клик мышкой по координатам, что бы дальше искать картинку "БАФ"
- после 5 нажатий картинки "БАФ", нужно нажать   мышкой по координатам, что бы перейти к следующими экрану в котором новые картинки "БАФ".
И так до тех пор пока не появится в определенном мест картинка "№1"
после этого конец цикла.

пробовал поиск по картинке в количестве 5 раз и переход дальше, но как выйти из цикла по картинке  непониманию.

Кто подскажет как правильно это организовать?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Циклы
« Reply #8 on: March 17, 2017, 06:16:27 PM »
GOTO в кликере работает только по меткам, так как после интерпритации все пустые строки и комменты удаляются, и номер выполняемой строки может не соответствоовать номеру строки в скрипте.
Code: (clickermann) [Select]
metka2:
GOTO(metka1)
WAIT(60)
metka1:
GOTO(metka2)

Лучше использовать именно буквенные метки.

Но конечно правильнее использовать нормальные циклы.
Code: (clickermann) [Select]
$count = 0
WHILE($count < 5) // если переменная меньше 5 цикл выполняется
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "baf.bmp", -1, 100)
      LCLICK($_return1, $_return2)
      WAITMS(200) // необходимая задержка после клика
      INC($count,1) // после каждого нахождения baf.bmp наращиваем переменную
     
      // После нахождения baf.bmp проверяем лаличие приза
      GETSCREEN
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "priz.bmp", -1, 100)
         LCLICK(100,500)
         WAITMS(100)
      END_IF
     
   END_IF
   WAITMS(50)
END_CYC