Author Topic: Цикл повтора  (Read 62079 times)

0 Members and 4 Guests are viewing this topic.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Цикл повтора
« Reply #30 on: August 14, 2020, 01:11:28 PM »
Бесконечно - потому, что весь код в редакторе выполняется бесконечно, для окончания должна выполнится HALT

Один раз - потому что внутренний цикл должен использовать другую переменную, не $i, она уже занята во внешнем цикле. По окончании внутреннего $i = 10, т.е. уже конец внешнего.
Исправь и будет выполнятся 3 раза.

Поставь в конце свой "другой скрипт" который выполнится позже.


maloi22

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Цикл повтора
« Reply #31 on: August 14, 2020, 04:42:28 PM »
Спасибо VINT!

maloi22

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Цикл повтора
« Reply #32 on: August 15, 2020, 11:52:56 AM »
Vint если не трудно удели ещё немного времени,подскажи начинающему :-[
как рандомно заменить значения в поле к примеру от 1.01 до 1.30?
 WAIT(5)
   LCLICK(819,325)
   FOR($a=0,$a<4)
      KEYPRESS(#BACKSPACE)
      WAITMS(2)
   END_CYC
   WAITMS(200)
   $str=""
   for ($j=0, $j < 4)
      $chr = char( rnd(1.01, 1.30) )
      $str = strconcat($str, $chr)
   end_cyc
   KEYSTRING($str)
   WAIT(3)
END_CYC
Что то у меня не выходит :(

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Цикл повтора
« Reply #33 on: August 15, 2020, 06:29:56 PM »
RND возвращает только целые числа.

Чёт непонятно что ты хочешь сделать. CHAR - возвращает символ по коду, зачем в него передавать дробное число? У какого символа код 1.01?


maloi22

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Цикл повтора
« Reply #34 on: August 15, 2020, 07:38:58 PM »
Я просто не очень то понимаю :( Понимаю что этот цикл менят рандомно  подставляет символы от a...z ,а как вставить рандомно меняющиеся дробные числа от 1.01 до 1.30 тяму у меня не хватает (( 

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Цикл повтора
« Reply #35 on: August 17, 2020, 03:21:40 PM »
Вот так подставятся рандомные символы a...z
Code: (clickermann) [Select]
$str=""
FOR($j=0, $j < 4)
    $chr = CHAR(RND(97, 122))
    $str = STRCONCAT($str, $chr)
END_CYC

Вот так A...Z
Code: (clickermann) [Select]
$str=""
FOR($j=0, $j < 4)
    $chr = CHAR(RND(65, 90))
    $str = STRCONCAT($str, $chr)
END_CYC

Вот так получаем случайное число из диапазона от 1.01 до 1.30
Code: (clickermann) [Select]
$chr = RND(1, 30)/100 + 1Но зачем это в этом коде, никто не знает. В CHAR это передавать нельзя.


freeoza

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Цикл повтора
« Reply #36 on: October 13, 2020, 04:55:58 PM »
Добрый день :)
поделитесь советом, как, зациклив одну часть сценария, возвращаться к первой строке и начинать заново?
был взят этот сценарий, но что-то не работает как надо. Он зациклил вторую часть бесконечно. как исправить, немного не понимаю  ::)

Code: (clickermann) [Select]
staret:

WAIT(1)
LCLICK(107,730)
WAIT(4)


DEFINE($aaa,0) // эту часть нужно зациклить 30 раз и возвращаться к 1ой строке
start:

 WAIT(1)
LCLICK(1223,754)
WAIT(2)
 
INC ($aaa, 1) // увеличиваем переменную на 1
 
IF($aaa = 30) // если переменная стала равна 30

GOTO (staret)
END_IF

GOTO (start) // если счет циклов не равен 30, возвращаемся к метке start:


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Цикл повтора
« Reply #37 on: October 14, 2020, 12:48:37 PM »
Добрый день :)
поделитесь советом, как, зациклив одну часть сценария, возвращаться к первой строке и начинать заново?
был взят этот сценарий, но что-то не работает как надо. Он зациклил вторую часть бесконечно. как исправить, немного не понимаю  ::)

Мммда.
Code: (clickermann) [Select]
WAIT(1)
LCLICK(107,730)
WAIT(4)

FOR($aaa=0, $aaa < 30)
    WAIT(1)
    LCLICK(1223,754)
    WAIT(2)
END_CYC


freeoza

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Цикл повтора
« Reply #38 on: October 14, 2020, 02:25:04 PM »
оу мерси Винт

Добрый день :)
поделитесь советом, как, зациклив одну часть сценария, возвращаться к первой строке и начинать заново?
был взят этот сценарий, но что-то не работает как надо. Он зациклил вторую часть бесконечно. как исправить, немного не понимаю  ::)

Мммда.
Code: (clickermann) [Select]
WAIT(1)
LCLICK(107,730)
WAIT(4)

FOR($aaa=0, $aaa < 30)
    WAIT(1)
    LCLICK(1223,754)
    WAIT(2)
END_CYC

clickerror

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Цикл повтора
« Reply #39 on: December 16, 2020, 02:26:06 PM »
Здравствуйте, подскажите пожалуйста как лучше реализовать следующий сценарий:
Есть две области экрана (для простоты, скажем левая и правая), в которые необходимо делать ряд кликов мышью. При этом, началА циклов по прокликиванию в левой и правой частях экрана должны проходить рандомно, т.е. необязательно поочередно.
Например, прокликакли первый цикл в левой части экрана, ждем, скажем, от 5 до 30 секунд (это рандомно надо выбрать) и далее, либо начинается цикл кликов по правой части экрана, либо опять первый цикл - по левой, это также надо выбирать рандомно, опять ждем некоторое рандомное время и так далее.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Цикл повтора
« Reply #40 on: December 16, 2020, 09:38:27 PM »
Code: (clickermann) [Select]
IF(RND(0, 1) = 0)
    // здесь клики по левой стороне
ELSE
    // здесь клики по правой стороне
END_IF
WAIT(RND(5, 30))


clickerror

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Цикл повтора
« Reply #41 on: December 16, 2020, 10:46:27 PM »
Code: (clickermann) [Select]
IF(RND(0, 1) = 0)
    // здесь клики по левой стороне
ELSE
    // здесь клики по правой стороне
END_IF
WAIT(RND(5, 30))

Спасибо, очень просто и то что надо!!!
А если понадобиться добавить еще сторон или даже скорее не сторон, а мест, где необходимо поводить/покликать мышкой в экране, скажем если таких мест будет ну шт. 10, как тогда красиво описать эти действия и чтобы также с рандомом по разным местам и рандомом по времени начала срабатывания на то или иное место? Это уже не без помощи SWITCH наверное?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Цикл повтора
« Reply #42 on: December 17, 2020, 10:00:37 AM »
Да, почти то же самое, но со SWITCH


clickerror

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Цикл повтора
« Reply #43 on: December 17, 2020, 10:18:27 AM »
Да, почти то же самое, но со SWITCH

Примерчик бы, пжлст?)

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Цикл повтора
« Reply #44 on: December 17, 2020, 04:21:02 PM »
Примерчик бы, пжлст?)
Шаблоны -->> SWITCH
Code: (clickermann) [Select]
$var = RND(1, 5)
SWITCH($var)
    CASE(1)
        // 1
    CASE(2)
        // 2
    CASE(3)
        // 3
    CASE(4)
        // 4
    CASE(5)
        // 5
END_SWITCH
WAIT(RND(5, 30))