Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Nikki on December 16, 2016, 09:17:26 PM
-
Добрый день!
Задача.Нужно кликнуть по определенной цветной фигуре на экране , название и цвет которой пишется в углу экрана.Выпадает название фигуры рандомно.
Три фигуры , три цвета и название фигур из двух слов ( например -круг синий , может писаться так КРУГ синий, КРУГ СИНИЙ ,круг СИНИЙ , круг синий )Цвет шрифта одинаковый.
С чего начать?
-
Нужно сделать картинки слов СИНИЙ с капсом и без. И так для каждого цвета.
Также нужно определить цвета картинок на экране.
Здесь я написал подпрограмму и вызовы с параметрами. В подпрограмму передается имя картинки и цвет фигурки. Сначала мы ищем картинку слова обозначающего цвет и если нашли то начинаем искать соответствующий цвет фигурки и кликать на неё.
В данном случаи область поиска 0,0, $_xmax,$_ymax обозначает весь экран. Но лучше указать примерное место поиска. Так будет гораздо быстрее искать. Пример 500,500, 600,600
SUB(search, $pic, $color)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, $pic, -1, 100) // поиск слова
IF_PIXEL_IN(0,0, $_xmax,$_ymax, $color) // поиск цвета фигурки
LCLICK($_return1, $_return2) // клик по найденной фигурке
WAITMS(500)
END_IF
END_IF
END_SUB
GETSCREEN
search("СИНИЙ.bmp",13856258) // вызов подпрограммы search, первый параметр имя картинки, второй цвет фигуры
search("синий.bmp",13856258)
search("КРАСНЫЙ.bmp",255)
search("красный.bmp",255)
search("ЗЕЛЕНЫЙ.bmp",3914077)
search("зеленый.bmp",3914077)
WAITMS(500)
-
Судя по задаче это вид капчи. Тогда возникает вопрос разрабы же не идиоты, раз даже разным регистром пишут. 100% там может быть не одна фигура этого цвета одновременно. Поэтому поиск только по цвету может не подойти.
Если штрафа нет или он минимальный, то оставить так. А если ошибка смерти подобна, то нужно думать дальше.
-
Области поиска для слова и фигур нужно написать свои.
Картинки обзави таким образом
СИНИЙ шар.bmp - картинка слова
СИНИЙ шар_2.bmp - картинка фигуры
Картинки нужно сделать максимально маленькими. Для слов хорошо подходит полоска в 2-3 пиксела по ширене слова. Для фигур такое тоже сгодится. Чем меньше в картинке пикселов тем быстрее поиск.
Но если графика меняется то без цветокоррекции и процента совпадения не обойтись.
По логу смотри что находит что нет.
SUB(search, $pic)
IF_PICTURE_IN (500,500, 600,600, STRCONCAT($pic, ".bmp"), -1, 100) // поиск слова
LOGWRITE ("Нашел ", STRCONCAT($pic, ".bmp"))
IF_PICTURE_IN (300,300, 500,500, STRCONCAT($pic, "_2.bmp"), -1, 100) // поиск фигуры
LOGWRITE ("Нашел ", STRCONCAT($pic, "_2.bmp"))
LCLICK($_return1, $_return2) // клик по найденной фигурке
WAITMS(500)
END_IF
END_IF
END_SUB
GETSCREEN
search("СИНИЙ шар")
search("синий шар")
WAITMS(500)
-
Добрый вечер.Если делать картинки слова(синий шар ) с разными сочетаниями регистров ,
то надо сделать 81 картинку т.к. цвет и название фигурки ввыпадают в произвольном сочетании
по регистрам (по 3 варианта).
Сами фигурки выпадают с разным небольшим наклоном , но у фигурок можно выделить свой цвет пиксель
и кликнуть по нему.Можно ли сделать -поиск картинки ( название цвета ) + поиск картинки ( название фигурки )
и кликнуть по индивидуальному цвету пикселя характерный для каждой фигурке ?
А чтобы быстрее искал слова ( синий шар )можно сделать картинку одной первой буквы
каждого слова ( с ш ).
Всем хороших выходных.
-
Слова искать конечно раздельно!
Цвет отдельно разным регистром, фигура - отдельно.
Т.к. Одновременно несколько фигур этого цвета, просто по цвету искать нельзя.
По картинке нельзя совсем. Фигуры повёрнуты на произвольный градус. +На фигуры наложена декаль из произвольных трещин.
Задача делится на 2 части, надпись и поиск фигуры.
Надпись ищем отдельно цвет, отдельно - форму. Образец делать на 1/2-1 длину слова, малой высоты 1-2-3 пиксела.
Надпись на прозрачном фоне! Применить цветокоррекцию 7 уровня. Подобрать % совпадения.
Фигуру ищем при цветокоррекции 7. Определяем клетки с нужным цветом. Для определения фигуры, предлагаю проверять углы, чтобы отличить ромб от квадрата... Или может проще считать количество пикселов по паре цветов основной/чёрный. Последнее наверно лучше.
-
думаю начать нужно с того, что более конкретно поставить условие задачи, а именно:
1.какое кол-во фигур.
2.какое кол-во цветов.
3.как написал автор выше, повернуты ли они или они всегда в одном положении.
4.желателен скрин с примером, так более визуально понятно будет условие задачи.
-
IF($first = 0) // это условие сработает 1 раз
$first = 1
// настройка
// массив имен картинок цветов
ARRPUSH($arr_color, "F1") // фиолетовый F1.bmp
ARRPUSH($arr_color, "F2") // ФИОЛЕТОВЫЙ F2.bmp
ARRPUSH($arr_color, "O1") // другие цвета
ARRPUSH($arr_color, "O2")
// массив имен картинок форм
ARRPUSH($arr_form, "CRUG1") // круг CRUG1.bmp
ARRPUSH($arr_form, "CRUG2") // КРУГ CRUG2.bmp
ARRPUSH($arr_form, "KVADRAT1") // и тд.
ARRPUSH($arr_form, "KVADRAT2")
END_IF
SUB(scan)
$color = 0
$form = 0
GETSCREEN
FOR($a=0,$a<ARRSIZE($arr_color)) // просчитываем все цвета
IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT($arr_color[$a], ".bmp"), -1, 100)
$color = STRFILTER($arr_color[$a], "1234567890", 0) // удаляем все цифры из имени
$a=ARRSIZE($arr_color)
END_IF
END_CYC
FOR($a=0,$a<ARRSIZE($arr_form)) // просчитываем все формы
IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT($arr_form[$a], ".bmp"), -1, 100)
$form = STRFILTER($arr_form[$a], "1234567890", 0)
$a=ARRSIZE($arr_form)
END_IF
END_CYC
IF(($color ! 0)&($form ! 0)) // если оба найдены
LOGWRITE ("Цвет: ", $color, " Форма: ", $form)
$pict = STRCONCAT($color, "_", $form) // составляем имя искомой картинки цвет_форма
ELSE
LOGWRITE ("Не найдено!")
LOGWRITE ("Цвет: ", $color, " Форма: ", $form)
HALT
END_IF
END_SUB
scan() // определение цвета и формы фигуры
LOGWRITE ($pict) // в итоге должно получиться например F_CRUG
HALT
-
Да не катит там поиск по картинке фигуры, зачем под это подстраиваться?
Фигуры все случайно повёрнуты.
-
Да не катит там поиск по картинке фигуры, зачем под это подстраиваться?
Фигуры все случайно повёрнуты.
Это вообще то анализ текста, фигуры определять будем потом.
-
Я понял. Про это и говорю.
Зачем получать имя F_CRUG если оно не будет использоваться?
-
Я понял. Про это и говорю.
Зачем получать имя F_CRUG если оно не будет использоваться?
Ну вопрос возникает, вот я и выдаю ответ.
https://vk.com/topic-14410794_23383620?post=51769 (https://vk.com/topic-14410794_23383620?post=51769)
Конечно про оптимальность и будет от этого толк вообще речи нет.
Откуда эта капча вообще?