Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: RammØunZ on January 15, 2020, 08:25:38 PM

Title: Выполняется конструкция IF с ложным условием
Post by: RammØunZ on January 15, 2020, 08:25:38 PM
Подскажите, почему так происходит ?

Есть часть кода, задача которого найти пиксель 13296115 по конкретным координатам и, если есть совпадение, то 4 раза проверить есть ли такой же пиксель в 4 строчках. Вот как он выглядит:

Code: (clickermann) [Select]
$y[0] = 300
$y[1] = 500
$y[2] = 700
$y[3] = 900

GETSCREEN
IF(PXL(1000, 300) =  13296115)
   $b= 0
   print("$b=", $b)
 
   GETSCREEN
   FOR($a=0, $a<4)
      IF(PXL(1000, $y[$a] = 13296115))
         print("Цвет пикселя=", PXL(1000, $y[$a]))
         INC($b)
      END_IF
   END_CYC

   IF($b = 4)
      print("Ну как так то, $b=", $b)
   END_IF
END_IF
halt

В лог выводится print("Цвет пикселя=", PXL(1040, $y[$a])) 4 раза, хотя по логу видно что 2 последних пикселя не удовлетворяют условию =>  в логе не должно быть 2 последних принта, и $b = 4 ..... Подскажите, как это всё работает, что я делаю не так ?

Сам лог:
Code: [Select]
21:15:12 $b=0
21:15:12 Цвет пикселя=13296115
21:15:12 Цвет пикселя=13296115
21:15:12 Цвет пикселя=1977418
21:15:12 Цвет пикселя=1694090
21:15:12 Ну как так то, $b=4

p.s. Так же встречались проблемы с циклом for, а именно отрабатывала 1 итерация почему-то вместо заданной, но я в тупую хреначу стену кода, но иногда уж совсем много получается ... уже путаюсь!!! Так же встречается ошибка интерпретации строки при 4 и более условиях в конструкции IF
Title: Re: Выполняется конструкция IF с ложным условием
Post by: Vint on January 15, 2020, 08:46:13 PM
Code: (clickermann) [Select]
      IF(PXL(1000, $y[$a] = 13296115))что я делаю не так ?

Так много написал. Просто запутался со скобками
Code: (clickermann) [Select]
      IF(PXL(1000, $y[$a]) = 13296115)
p.s. Так же встречались проблемы с циклом for, а именно отрабатывала 1 итерация почему-то вместо заданной, но я в тупую хреначу стену кода, но иногда уж совсем много получается ... уже путаюсь!!! Так же встречается ошибка интерпретации строки при 4 и более условиях в конструкции IF
for один раз: или не задал начальное значение или использовал одно имя переменной у вложенных циклов.
Про >4 неправда. Гораздо больше бывает. Скорее, опять же ошибка в скобках. Или другое.
Title: Re: Выполняется конструкция IF с ложным условием
Post by: RammØunZ on January 16, 2020, 06:52:03 PM
Действительно...  >:( Дело в невнимательности.  Спасибо,  сенсей, за твой зоркий глаз.

По поводу IF: Ошибка видимо в ключевом слове, или я чего-то не правильно понимаю, но короче "OR" не работает, а "|" работает:

Code: (clickermann) [Select]
IF($x = 1 OR $x = 2 OR $x = 3  OR $x = 4)   
   print(1)
END_IF
halt
С 3 операндами всё ок.
Title: Re: Выполняется конструкция IF с ложным условием
Post by: Hito on January 16, 2020, 09:50:53 PM
Действительно...  >:( Дело в невнимательности.  Спасибо,  сенсей, за твой зоркий глаз.

По поводу IF: Ошибка видимо в ключевом слове, или я чего-то не правильно понимаю, но короче "OR" не работает, а "|" работает:

Code: (clickermann) [Select]
IF($x = 1 OR $x = 2 OR $x = 3  OR $x = 4)   
   print(1)
END_IF
halt
С 3 операндами всё ок.
В языке Clickermann-а нет "OR" и есть "|".
Title: Re: Выполняется конструкция IF с ложным условием
Post by: Космич on January 16, 2020, 10:18:19 PM
Code: ("" ) [Select]
Так же я напоминаю что "and", "or" и "xor" являются синонимами операций "&","|" и "^" соответственно.
Title: Re: Выполняется конструкция IF с ложным условием
Post by: dramster on January 16, 2020, 10:25:11 PM
http://crapware.aidf.org/forum/index.php?topic=4355.0