Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: m1hai on March 28, 2018, 09:53:41 PM
-
Я новенький пожалуйста помогите разобраться. Он должен выбрать рандомно одну из коордонат представленных, потом нажать на левый клик, повторяясь 4 раза, если рандомно выбирает число которое было то возвращается обратно и опять рандом выбирает и идёт дальше.
$curent[0]=0
$curent[1]=0
$curent[2]=0
$curent[3]=0
$a=0
FOR($a,$a<4)
LOGWRITE ($a)
skip:
$ran = RNDFROM(700,500,850,1050,1222,1400)
LOGWRITE("Получил"+$ran)
FOR($i=0,$i<4)
IF($curent[$i]=$ran)
LOGWRITE("Совпадение"+$ran)
GOTO(skip)
END_IF
END_CYC
$curent[$a]=$ran
LCLICK($ran,630)
LOGWRITE("Нажал"+$ran)
WAITMS(300)
END_CYC
WAITMS(100)
Написал несколько информации в лог чтобы увидеть что идёт не так.
вот:
21:43:11 0
21:43:11 Получил+850
21:43:11 Нажал+850
21:43:11 1
21:43:11 Получил+850
21:43:11 Совпадение+850
21:43:11 Получил+1050
21:43:11 Нажал+1050
21:43:12 Нажал+1050
21:43:12 3
21:43:12 Получил+500
21:43:12 Нажал+500
А должно быть так:
21:43:11 0
21:43:11 Получил+850
21:43:11 Нажал+850
21:43:11 1
21:43:11 Получил+850
21:43:11 Совпадение+850
21:43:11 Получил+1050
21:43:11 Нажал+1050
2
Получил+"рандом"
Нажал+"рандом"
21:43:12 3
21:43:12 Получил+500
21:43:12 Нажал+500
Спасибо заранее.
-
Прыгать на метку по гото из цикла категорически запрещено.
Можно было бы поправить твой скрипт, но лучше взять готовый. Вот тема с идентичной задачей http://crapware.aidf.org/forum/index.php?topic=3535.0
А вот отредактированный вариант для тебя:
STRSEPARATE ("700,500,850,1050,1222,1400", ",", $arr) //массив из чисел
$n = 4 //указать число выполняемых действий
FOR($a=0,$a<$n) // повторяем $n раз
print($a)
$i = rnd(0,ARRSIZE($arr)-1) //рандомный элемент массива.
LCLICK(int($arr[$i]),630)
print("Нажал ",int($arr[$i]))
$arr[$i] = $arr[ARRSIZE($arr)-1] //удаляем использованный элемент
$del = ARRPOP($arr)
WAITMS(300)
END_CYC
HALT // выход
-
Прыгать на метку по гото из цикла категорически запрещено.
Можно было бы поправить твой скрипт, но лучше взять готовый. Вот тема с идентичной задачей http://crapware.aidf.org/forum/index.php?topic=3535.0
А вот отредактированный вариант для тебя:
STRSEPARATE ("700,500,850,1050,1222,1400", ",", $arr) //массив из чисел
$n = 4 //указать число выполняемых действий
FOR($a=0,$a<$n) // повторяем $n раз
print($a)
$i = rnd(0,ARRSIZE($arr)-1) //рандомный элемент массива.
LCLICK(int($arr[$i]),630)
print("Нажал ",int($arr[$i]))
$arr[$i] = $arr[ARRSIZE($arr)-1] //удаляем использованный элемент
$del = ARRPOP($arr)
WAITMS(300)
END_CYC
HALT // выход
Cпасибо большое за алтернативный вариант. Просто пока что на разобрался в этом синтаксисе и попробовал сделать из ограниченной мною видимости функций и возможностей :).
-
Прыгать на метку по гото из цикла категорически запрещено.
Можно было бы поправить твой скрипт, но лучше взять готовый. Вот тема с идентичной задачей http://crapware.aidf.org/forum/index.php?topic=3535.0
А вот отредактированный вариант для тебя:
STRSEPARATE ("700,500,850,1050,1222,1400", ",", $arr) //массив из чисел
$n = 4 //указать число выполняемых действий
FOR($a=0,$a<$n) // повторяем $n раз
print($a)
$i = rnd(0,ARRSIZE($arr)-1) //рандомный элемент массива.
LCLICK(int($arr[$i]),630)
print("Нажал ",int($arr[$i]))
$arr[$i] = $arr[ARRSIZE($arr)-1] //удаляем использованный элемент
$del = ARRPOP($arr)
WAITMS(300)
END_CYC
HALT // выход
Поставил в цикл весь код, иногда всё таки нажимает на те же координаты. Не знаю почему.Прошу еще раз посмотреть. :(
-
После завершения нажатий, или перед обьявлением массива, нужно обнулять его, так как в массиве остаются не используемые (не удаленные) элементы, а STRSEPARATE дописывает к ним еще.
STRSEPARATE ("700,500,850,1050,1222,1400", ",", $arr) //массив из чисел
$n = 4 //указать число выполняемых действий
FOR($a=0,$a<$n) // повторяем $n раз
print($a)
$i = rnd(0,ARRSIZE($arr)-1) //рандомный элемент массива.
LCLICK(int($arr[$i]),630)
print("Нажал ",int($arr[$i]))
$arr[$i] = $arr[ARRSIZE($arr)-1] //удаляем использованный элемент
$del = ARRPOP($arr)
WAITMS(300)
END_CYC
UNDEFINE($arr) //удаляем массив
HALT // выход
-
Cпасибо. Всё понятно. :) Тут можно репутацию как нибудь вашу поднять с какой то кнопкой :) ?