Author Topic: Почему цикл в цикле не работает?  (Read 5463 times)

0 Members and 1 Guest are viewing this topic.

Virikidor

  • Зашел в гости
  • *
  • Posts: 13
    • View Profile
Почему цикл в цикле не работает?
« on: October 20, 2016, 11:15:03 PM »
Здравствуйте. Помогите. Почему цикл в цикле не  работает? Делает только одну строку .  Скрипт делает нажатия  в виде ромба. Делает одну только "грань"
Code: (clickermann) [Select]
//верхний угол начальная точка
$x=
$y=
//левый край
$x2=
//правый край
$x3=
//смещение по х
$sx=2
//смещение по у
$sy=1
//задержка
$t=10
//количество точек в ряду
$z=($x-$x2)/$sx
//количество рядов
$m=($x3-$x2)/$sx

FOR ($n, $n<$m)
 $xn=$x
 $yn=$y   
 $x=$xn
 $y=$yn 
   FOR($g, $g<$z)
        move($x,$y)
        vaitms($t)
        lclick($x,$y)
        vaitms($t)
        //????????
        $x=$x-$sx
        $y=$y+$sy       
    END_CYC
  $x=$xn+$sx
  $y=$yn+$sy
END_CYC
« Last Edit: October 20, 2016, 11:20:47 PM by Virikidor »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #1 on: October 21, 2016, 12:24:51 AM »
чтото я не догнал что за принцип работы   :-\ , ну да и ладно  :D .
Quote
Почему цикл в цикле не  работает?
потомучто наращиваемая переменная в цикле фор не обнуляется, а значит FOR($g, $g<$z) выполнится только один раз (одна грань). поэтому нужно обнулять переменную (либо присваивать ей нужное значение) FOR($g=0, $g<$z). ну а если это всё часть большого скрипта, и эта часть выполняется не один раз, то и в цикле FOR ($n, $n<$m) также нужно обнулять $n .
и небольшая ошибка в написании задержки, она у тебя не работала, не  vaitms, а waitms.
Code: (clickermann) [Select]
FOR ($n=0, $n<$m)
   $xn=$x
   $yn=$y
   $x=$xn
   $y=$yn
   FOR($g=0, $g<$z)
      move($x,$y)
      waitms($t)
      lclick($x,$y)
      waitms($t)
      $x=$x-$sx
      $y=$y+$sy
   END_CYC
   $x=$xn+$sx
   $y=$yn+$sy
END_CYC 

Virikidor

  • Зашел в гости
  • *
  • Posts: 13
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #2 on: October 21, 2016, 08:49:21 AM »
Спасибо. Я из примера в шаблоне кликера ставил условия, а там не было обнуления переменной. Вот я и подумал что там по умолчанию ноль ))
Скрипт Садит деревья в ЗФ по диагонали с верхней точки в левую сторону. Получается такой ромб.
P.S. прошу прощения если я не туда писал. Еще не разобрался с этим форумом. Тем более я с мобильного )) Не привык создавать темы почем зря.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #3 on: October 21, 2016, 09:11:53 AM »
Спасибо. Я из примера в шаблоне кликера ставил условия, а там не было обнуления переменной.

А почему сначала не посмотреть в справку. Там всё есть. Это же лучше. И понятней будут особенности синтаксиса.


Virikidor

  • Зашел в гости
  • *
  • Posts: 13
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #4 on: October 21, 2016, 09:20:27 AM »

А почему сначала не посмотреть в справку. Там всё есть. Это же лучше. И понятней будут особенности синтаксиса.
Я непонятно откуда качал кликер и у меня справка пустая почему-то. Попробую с этого сайта скачать. Если есть где на форуме нечто вроде справки или ЧАВО то подскажите плиз ссылку. А то вопросы остались еще. Не создавать же тему на каждый вопрос.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #5 on: October 21, 2016, 09:38:16 AM »
Я непонятно откуда качал кликер и у меня справка пустая почему-то. Попробую с этого сайта скачать. Если есть где на форуме нечто вроде справки или ЧАВО то подскажите плиз ссылку.

Это встроенная защита Windows. К кликеру отношения не имеет.
Но так как вопрос частый, даже в корне кликера есть текстовый файл с громкоговорящим названием
"Если не открывается справка.txt"
В нём ссылка ведёт  сюда
http://crapware.aidf.org/forum/index.php?topic=1031.0


Virikidor

  • Зашел в гости
  • *
  • Posts: 13
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #6 on: October 21, 2016, 10:07:01 AM »
Это встроенная защита Windows.
Капец. Кто бы мог подумать. Я плачу ))
Спасибо за наводку )))

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #7 on: October 21, 2016, 11:01:28 AM »
Как в анекдоте " ... и десантник этот, ну так надоел!"
Всё-же нужно внести изменения в шаблон, FOR($a,$a<3) // повторяем 3 раза
по статистике  в него вляпываются сейчас чаще, чем в коровьи лепёшки.  ;D

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #8 on: October 21, 2016, 11:26:12 AM »
Я бы с радостью. Могу и свой дать, но вот включат ли его.
Там кстати мне и не нравится чехарда с регистром для половины шаблонов.
Сделал у себя всё заглавными и без лишнего.


Virikidor

  • Зашел в гости
  • *
  • Posts: 13
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #9 on: October 21, 2016, 11:30:27 AM »
Кстати. Язык регистро зависимый или нет?

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #10 on: October 21, 2016, 11:45:53 AM »
Кстати. Язык регистро зависимый или нет?
нет, а проверить это быстрее чем написать вопрос. ;)

esporao

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #11 on: September 21, 2018, 09:16:00 PM »
Сделал цыкл в цыкле. Должно работать 3 раза и останавливаться. А по факту работает далее. Тоесть не 3 а до безконечности.

Code: [Select]
FOR ($i=0, $i<3)                   //должен запускать вложенный цыкл 3 раза и остановиться
LCLICK(970,870)
WAIT(1)
      FOR ($i=0, $i<28)             //вложеный цыкл. делает 28 нажатий, и завершаеться
         LCLICK(1000,500)
         WAIT(1)
      END_CYC
END_CYC

Помогите найти ошибку.
« Last Edit: September 21, 2018, 09:19:16 PM by esporao »

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #12 on: September 21, 2018, 10:33:31 PM »
Code: (clickermann) [Select]
FOR($i = 0, $i < 3)                   //должен запускать вложенный цыкл 3 раза и остановиться
   LCLICK(970,870)
   WAIT(1)
   FOR($a = 0, $a < 28)             //вложеный цыкл. делает 28 нажатий, и завершаеться
      LCLICK(1000,500)
      WAIT(1)
   END_CYC
END_CYC

HALT
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #13 on: September 22, 2018, 08:01:42 AM »
Сделал цыкл в цыкле. Должно работать 3 раза и останавливаться. А по факту работает далее. Тоесть не 3 а до безконечности.

По умолчанию кликер выполняет код по кругу.
Что бы остановить выполнение в конце нужно написать команду HALT

esporao

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: Почему цикл в цикле не работает?
« Reply #14 on: September 24, 2018, 12:58:13 AM »
Спасибо большое. Все теперь работает.

Выходит было две ошибки:
- нужно было разные переменные использовать для цыклов
- и принудительно завершать работу скрипта по завершении.