Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Tikon on May 22, 2017, 09:26:14 PM
-
Есть тест в котором 25 вопросов. Выполнение его я реализовал с помощью "if_picture_in" поиск вопроса, а после поиск верного варианта. И у меня такой вопрос, можно ли сделать так чтобы сперва кликер сканил экран на наличие одной из 25 картинок, а после запускал определенное действие, и при следующем поиске игнорировал уже бывший вопрос?
-
Может быть несколько разных реализаций, но в любом случае, это будет цикличный перебор имен картинок. Список имен удобно хранить в массиве и считывать (или извлекать) их по номеру ячейки. Создавать массив тоже можно по-разному.
Один из вариантов, для примера...
TFREADARR("Список картинок.txt", $arr) // загружаем список имен картинок в память (в массив $arr)
$arrsize = ARRSIZE($arr) // размер массива
// То что написано выше, нельзя перечитывать дважды за всё время выполнения скрипта,
// так как данные из ячеек массива (в этом сценарии) не извлекается, а просто считываются,
// а сам массив не уничтожается.
//--------------------------------
WHILE(1) // для примера - бесконечный цикл, выход из которого только по условию
IF($n < $arrsize) // переменная-счетчик $n - это номер ячейки массива с именами картинок (отсчет ведется от нуля)
// Если картинка лежит не рядом со скриптом, а например в папке рядом с ним,
// и в файле "Список картинок.txt" имена картинок без путей и файловых расширений, тогда...
$bmp_name = STRCONCAT("images\", $arr[$n], ".bmp") // собираем строку... путь + имя картинки + расширение в переменную
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, $bmp_name) // подставляем переменную в функцию поиска картинки
// какое-то действие
LOGWRITE ("Картинка найдена. Зачёт!")
HALT // выход
END_IF
INC($n, 1) // картинка уже использована 1 раз - наращиваем счетчик на единицу (получаем номер следующей ячейки массива)
ELSE
LOGWRITE ("Картинки закончились.")
HALT // выход
END_IF
WAITMS(100)
END_CYC
-
Имена картинок должны быть в таком виде
Вопрос_1.bmp - Вопрос_25.bmp
Ответ_1.bmp - Ответ_25.bmp
DEFINE($num_count, -1)
IF(($num_count = -1)|($num_count = 25))
$num_count = 0
UNDEFINE($arr_num)
FOR($a=0,$a<25)
ARRPUSH($arr_num, 1)
END_CYC
END_IF
GETSCREEN
FOR($a=1,$a<26)
IF($arr_num[$a-1] ! 0)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT("Вопрос_", $a, ".bmp"), -1, 100)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT("Ответ_", $a, ".bmp"), -1, 100)
LCLICK($_return1, $_return2)
$arr_num[$a-1] = 0
INC($num_count,1)
WAITMS(100)
END_IF
END_IF
END_IF
END_CYC
WAIT(1)