Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: alizonjohn on November 19, 2016, 12:57:24 PM
-
Всем привет!
Задача такая, есть ВСЕГО 2 ВАРИАНТА - на экране появляется или красный или синий пиксель. В зависимости от этого выполняются 2 разные алгоритма. Все сделал через IF по инструкции. Все работает.
Но!!! - теперь есть 3 ВАРИАНТА - красный, синий и зеленый пиксели.
Хочу использовать SWITCH как мне задать значение $var (что бы красный был 1, синий 2, зеленый 3)?
Благодарю за помощь.
-
Я имею ввиду, что пытаюсь сделать по аналогии с примером из справки
// генерируем случайное значение
$var = rnd(1,5)
// анализируем значение переменной
// при этом явно обрабатываем случаи 1,2 и 3 и неявно в блоке по умолчанию
switch($var)
case(1)
print("one")
case(2)
print("two")
case(3)
print("three")
default
print("smth else")
print("$var = ", $var)
end_switch
-
GETSCREEN
switch(pxl($x, $y)) //вписываешь свои координаты пикселя
case(255)
print("красный")
// действия, если пиксель красный (вместо 255 впиши свой номер цвета )
case(65280)
print("зеленый")
// действия, если пиксель зеленый (вместо 65280 впиши свой номер цвета )
case(16711680)
print("синий")
// действия, если пиксель синий (вместо 16711680 впиши свой номер цвета )
default
print("найден другой цвет пикселя = ", pxl($x, $y))
// действия, если пиксель другого цвета
end_switch
waitms(50)
если бы ты показал свой код с условиями IF, было бы намного проще.
-
да сложно понять что именно нужно автору вопроса. :-\
вместо обозваний цветов можешь вписать их номера.
//Хочу использовать SWITCH как мне задать значение $var
//(что бы красный был 1, синий 2, зеленый 3)?
// генерируем случайное значение
$var = rnd(1,5)
// анализируем значение переменной
// при этом явно обрабатываем случаи 1,2 и 3 и неявно в блоке по умолчанию
switch($var)
case(1)
print("one")
$var1=красный
case(2)
print("two")
$var1=синий
case(3)
print("three")
$var1=зилёнай
default
print("smth else")
print("$var = ", $var)
$var1=непойми какой
end_switch
LOGWRITE ($var1)
LOGWRITE (" ")
HALT
-
Спасибо, вроде понятно.
Тогда еще один вопрос: как задать каждому пикселю свои координаты? Имеется ввиду
красный появляется только сверху слева
синий только по центру
зеленый только снизу справа
Вариант выбрать областью поиска весь экран - не подходит!
-
даже автору вопроса и то ВРОДЕ всё понятно. мне вот, к сожалению ничего ни понятно. Как любят писать на нашем форуме " Уже всю голову сломал!" :'(
-
Уйду я от вас ;) или в Автоит или сразу в "Битву экстрасенсов", а что - зачем такому опыту по чтению несформулированных мыслей пропадать, да этож золотое дно! ;D
-
Может над вашим кодом вместе поржём, ;D так сказать развеим смутные сомненья? ::)
-
Тогда еще один вопрос: как задать каждому пикселю свои координаты? Имеется ввиду
красный появляется только сверху слева
синий только по центру
зеленый только снизу справа
Вариант выбрать областью поиска весь экран - не подходит!
если я правильно понял вопрос , то
с переключателем switch тут не прокатит. пишем с помощью обычных условий if else .
//$x1, $y1, $x2, $y2 , $x3, $y3 задаешь каждому пикселю свои координаты
GETSCREEN
IF(pxl($x1, $y1) = 255)
print("красный")
// действия, если пиксель красный (вместо 255 впиши свой номер цвета )
ELSE
IF(pxl($x2, $y2) = 65280)
print("зеленый")
// действия, если пиксель зеленый (вместо 65280 впиши свой номер цвета )
ELSE
IF(pxl($x3, $y3) = 16711680)
print("синий")
// действия, если пиксель зеленый (вместо 65280 впиши свой номер цвета )
ELSE
print("ниодин из пикселей не найден")
// действия, если пиксели другого цвета
END_IF
END_IF
END_IF
waitms(50)
-
Спасибо dramster! Именно это я и хотел!
Золотой - ну ты и флудер
-
так будет работать, если координаты искомых пикселей статичны. но можно сделать поиск этих цветов в небольших областях. но тебе виднее
GETSCREEN
IF_PIXEL_IN($x1, $y1, $x1+(ширина обл), $y1+(высота обл), 255)
print("красный")
// действия, если красный пикс есть в обл (вместо 255 впиши свой номер цвета )
ELSE
IF_PIXEL_IN($x2, $y2, $x2+(ширина обл), $y2+(высота обл), 65280)
print("зеленый")
// действия, если зеленый пикс есть в обл (вместо 65280 впиши свой номер цвета )
ELSE
IF_PIXEL_IN($x3, $y3, $x3+(ширина обл), $y3+(высота обл), 16711680)
print("синий")
// действия, если синий пикс есть в обл (вместо 16711680 впиши свой номер цвета )
ELSE
print("ниодин из пикселей не найден")
// действия, если пиксели другого цвета
END_IF
END_IF
END_IF
-
Спасибо dramster! Именно это я и хотел!
Золотой - ну ты и флудер
Класс и я же ещё и флудер, только по тому что кто-то не может понятно сформулировать, что именно ему нужно и каждый раз решает угадал отвечающий или нет. >:(