Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: RammØunZ on January 15, 2020, 08:25:38 PM
-
Подскажите, почему так происходит ?
Есть часть кода, задача которого найти пиксель 13296115 по конкретным координатам и, если есть совпадение, то 4 раза проверить есть ли такой же пиксель в 4 строчках. Вот как он выглядит:
$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 ..... Подскажите, как это всё работает, что я делаю не так ?
Сам лог:
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
-
IF(PXL(1000, $y[$a] = 13296115))
что я делаю не так ?
Так много написал. Просто запутался со скобками
IF(PXL(1000, $y[$a]) = 13296115)
p.s. Так же встречались проблемы с циклом for, а именно отрабатывала 1 итерация почему-то вместо заданной, но я в тупую хреначу стену кода, но иногда уж совсем много получается ... уже путаюсь!!! Так же встречается ошибка интерпретации строки при 4 и более условиях в конструкции IF
for один раз: или не задал начальное значение или использовал одно имя переменной у вложенных циклов.
Про >4 неправда. Гораздо больше бывает. Скорее, опять же ошибка в скобках. Или другое.
-
Действительно... >:( Дело в невнимательности. Спасибо, сенсей, за твой зоркий глаз.
По поводу IF: Ошибка видимо в ключевом слове, или я чего-то не правильно понимаю, но короче "OR" не работает, а "|" работает:
IF($x = 1 OR $x = 2 OR $x = 3 OR $x = 4)
print(1)
END_IF
halt
С 3 операндами всё ок.
-
Действительно... >:( Дело в невнимательности. Спасибо, сенсей, за твой зоркий глаз.
По поводу IF: Ошибка видимо в ключевом слове, или я чего-то не правильно понимаю, но короче "OR" не работает, а "|" работает:
IF($x = 1 OR $x = 2 OR $x = 3 OR $x = 4)
print(1)
END_IF
halt
С 3 операндами всё ок.
В языке Clickermann-а нет "OR" и есть "|".
-
Так же я напоминаю что "and", "or" и "xor" являются синонимами операций "&","|" и "^" соответственно.
-
http://crapware.aidf.org/forum/index.php?topic=4355.0