Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: hellstaff on December 15, 2016, 11:08:21 PM
-
Доброго времени суток . господа и ледм !
Задача. которую я никак неосилю ,
Условие: Сущесвует 12 координат - (10.10). (20.20).(30.30)...(120.120)
Задача :как. рандонмно 6(5.4.3.2) кликнуть СРЕДИ этих координат . с эадержкой WAITMS(RND(300,400)) . чтобы этот самый рандом(случайный порядок координат) не кликал в даже рандомно (случайно) одинаковую координату . т.е . например (10.10).(30.30) .(120.120).(10.10)....
Я понятно обьяснил ?
-
трудность, я так понимаю, в получении случайных чисел без повторений
Бери из вложения (не помню из какой темы они были),
и вот еще тема с рандомами http://crapware.aidf.org/forum/index.php?topic=1423.msg7288;topicseen#msg7288 (http://crapware.aidf.org/forum/index.php?topic=1423.msg7288;topicseen#msg7288)
-
Оно конечно спасибо . но тема -"Помогите.НОВИЧКУ" . а попроще и с разьяснениями . пожалуйсто.
ЭЭЭ...прожженым волкам оно понятно(и не понятно) . а вот мне ...
Best regards !
-
FOR ($i=1, $i<12+1)
ARRPUSH($ARR,$i) // создаем массив с числами от 1 до 12
END_CYC
WHILE(ARRSIZE($ARR) > 0) // цикл выполняется пока массив не опустеет
$ARR_SIZE = ARRSIZE($ARR) // получаем размер массива
FOR ($i=0, $i<$ARR_SIZE*2) // здесь цикл рандомизации
$n1 = RND(0,$ARR_SIZE-1)
$n2 = RND(0,$ARR_SIZE-1)
$R = $ARR[$n1]
$ARR[$n1] = $ARR[$n2]
$ARR[$n2] = $R
END_CYC
$r = ARRPOP($ARR) // извлекаем последнее значение из массива (массив становится меньше)
SWITCH($r) // свитч выполнит секцию в соответствии с этим числом
CASE(1)
LCLICK(10,10) // координаты задай свои
CASE(2)
LCLICK(10,10)
CASE(3)
LCLICK(10,10)
CASE(4)
LCLICK(10,10)
CASE(5)
LCLICK(10,10)
CASE(6)
LCLICK(10,10)
CASE(7)
LCLICK(10,10)
CASE(8)
LCLICK(10,10)
CASE(9)
LCLICK(10,10)
CASE(10)
LCLICK(10,10)
CASE(11)
LCLICK(10,10)
CASE(12)
LCLICK(10,10)
DEFAULT
END_SWITCH
WAITMS(RND(300,400))
END_CYC
-
...Еще больше понятней стало ...
...А куда подставлять число .которое определяет сколько координат из представленных 12-и надо кликать .например 6(5.4.3)?...
...Т.е. скрипт ужо готов . нужно лишь подставить координаты?...
Best regards!
P.S. Тема "Помогите НОВИЧКУ"
Пока еще не все вопросы...
-
Мне вот тоже непонятно что значит 6(5.4.3)
вот еще вариант. 6 случайных из 12
UNDEFINE($arr)
FOR($a=0,$a<12)
ARRPUSH($arr, $a) // пут подготавливаем массив чисел
END_CYC
$i = ARRSIZE($arr)-1
WHILE($i>0) // и рандомизируем его
$j = RND(0,$i)
IF($i ! $j)
$tmp = $arr[$j]
$arr[$j] = $arr[$i]
$arr[$i] = $tmp
END_IF
INC($i,-1)
END_CYC
FOR($a=0,($a<ARRSIZE($arr))&($a<6)) // будет выбрано 6 случайных секций
SWITCH($arr[$a])
CASE(1)
LCLICK(10,10) // координаты задай свои
CASE(2)
LCLICK(10,10)
CASE(3)
LCLICK(10,10)
CASE(4)
LCLICK(10,10)
CASE(5)
LCLICK(10,10)
CASE(6)
LCLICK(10,10)
CASE(7)
LCLICK(10,10)
CASE(8)
LCLICK(10,10)
CASE(9)
LCLICK(10,10)
CASE(10)
LCLICK(10,10)
CASE(11)
LCLICK(10,10)
CASE(12)
LCLICK(10,10)
DEFAULT
END_SWITCH
WAITMS(RND(300,400))
END_CYC
-
Итак - 6(5.4.3.2) означает :
6 координат из 12 предоставленных.
5 координат из 12 предоставленных.
и т.д. но .... из последнего предоставленного кода очевидно .что это вот эта строка :
FOR($a=0,($a<ARRSIZE($arr))&($a<6)) // будет выбрано 6 случайных секций .
Далее : если координат будет больше или меньше - то менять значение нужно в этой строке :
FOR($a=0,$a<12).
Я правильно понял ?
Т.е. это уже готовый скрипт . нужно только подставить значения и координаты ?
Я правильно понял ?
Best regards ?
-
Далее : если координат будет больше или меньше - то менять значение нужно в этой строке :
FOR($a=0,$a<12).
Я правильно понял ?
Т.е. это уже готовый скрипт . нужно только подставить значения и координаты ?
Я правильно понял ?
Best regards ?
Конечно же скрипт готовый.
Смысл в том чтобы создать массив чисел от 0-12. Затем рандомизировать их порядок. И в цикле выполнять SWITCH возвращая из массива эти числа как номера секций.
-
Почти все обсуждаемые случайные числа из этой (http://crapware.aidf.org/forum/index.php?topic=1965.0) темы.
Вот адаптированно к твоей задаче:
Вариант 1
[spoiler]// сколько координат кликнуть
$count_cl = 5
// заносим в массив все пары координат
STRSEPARATE("10:10:20:20:30:30:40:40:50:50:60:60:70:70:80:80:90:90:100:100:110:110:120:120", ":", $coords)
//==============================================================================
LOGCLEAR
$count_corr = ARRSIZE($coords) / 2
IF($count_cl > $count_corr)
LOGWRITE("Кликов больше чем заданно координат!")
HALT
END_IF
//создаем массив номеров пар (по числу пар координат)
UNDEFINE($num)
FOR($i=0, $i < $count_corr)
ARRPUSH($num, $i)
END_CYC
//перемешиваем массив номеров
$num_size = ARRSIZE($num)
FOR($i=0, $i < $num_size*2)
$n1 = RND(0, $num_size-1)
$n2 = RND(0, $num_size-1)
$tmp = $num[$n1]
$num[$n1] = $num[$n2]
$num[$n2] = $tmp
END_CYC
// делаем клики $count_cl раз
FOR($i=0, $i < $count_cl)
$ind = $num[$i]
$cx = $coords[$ind*2]
$cy = $coords[$ind*2 + 1]
//LOGWRITE("X/Y ", $cx, " / ", $cy)
LCLICK($cx, $cy)
WAITMS(200)
END_CYC
HALT
[/spoiler]
Вариант 2 Победитель нашего конкурса на основе решения Atas-а
[spoiler]// сколько координат кликнуть
$count_cl = 5
// заносим в массив все пары координат
STRSEPARATE("10:10:20:20:30:30:40:40:50:50:60:60:70:70:80:80:90:90:100:100:110:110:120:120", ":", $coords)
//==============================================================================
LOGCLEAR
// проверка на корректность заданного кол-ва кликов. Не обязательна :-)
IF($count_cl > (ARRSIZE($coords) / 2))
LOGWRITE("Кликов больше чем заданно координат!")
HALT
END_IF
// делаем клики $count_cl раз
FOR($i=0, $i < $count_cl)
$n = RND(0, (ARRSIZE($coords) / 2 - 1)) // случайный номер из номеров пар
$cx = $coords[$n*2]
$cy = $coords[$n*2 + 1]
// удаляем из массива использованные
$coords[$n*2] = $coords[ARRSIZE($coords) - 2]
$coords[$n*2 + 1] = $coords[ARRSIZE($coords) - 1]
$temp = ARRPOP($coords)
$temp = ARRPOP($coords)
LOGWRITE("X/Y ", $cx, " / ", $cy)
LCLICK($cx, $cy)
WAITMS(200)
END_CYC
HALT
[/spoiler]
-
Огромное СПАСИБО ! ...но
Иногда кликает 5 координат вместо 6
Изменил только количество координат 13 :
FOR($a=0,$a<13)
Сам код :
[// 16.12.2016
UNDEFINE($arr)
FOR($a=0,$a<13)
ARRPUSH($arr, $a) // пут подготавливаем массив чисел
END_CYC
$i = ARRSIZE($arr)-1
WHILE($i>0) // и рандомизируем его
$j = RND(0,$i)
IF($i ! $j)
$tmp = $arr[$j]
$arr[$j] = $arr[$i]
$arr[$i] = $tmp
END_IF
INC($i,-1)
END_CYC
FOR($a=0,($a<ARRSIZE($arr))&($a<6)) // будет выбрано 6 случайных секций
SWITCH($arr[$a])
CASE(1)
LCLICK(430,630+RND(+5,-5)) // координаты задай свои
CASE(2)
LCLICK(390,550+RND(+5,-5))
CASE(3)
LCLICK(470,550+RND(+5,-5))
CASE(4)
LCLICK(270,510+RND(+5,-5))
CASE(5)
LCLICK(590,510+RND(+5,-5))
CASE(6)
LCLICK(550,430+RND(+5,-5))
CASE(7)
LCLICK(430,430+RND(+5,-5))
CASE(8)
LCLICK(310,430+RND(+5,-5))
CASE(9)
LCLICK(230,350+RND(+5,-5))
CASE(10)
LCLICK(315,310+RND(+5,-5))
CASE(11)
LCLICK(435,350+RND(+5,-5))
CASE(12)
LCLICK(550,310+RND(+5,-5))
CASE(13)
LCLICK(630,350+RND(+5,-5))
DEFAULT
END_SWITCH
WAITMS(RND(300,400))
END_CYC
LCLICK(430,790+RND(5,-5))
WAITMS(RND(3600,3700))
LCLICK(430,790+RND(5,-5))
WAITMS(RND(300,400))
GOTO(1)]
..Может . рандомно кликает в одну и туже координату?...
...Может чего забыл или не туда вписал ?...
...По наблюдениям не кликает в 13 координату .может там чего то ...
Best regards !
-
..Может . рандомно кликает в одну и туже координату?...
...Может чего забыл или не туда вписал ?...
...По наблюдениям не кликает в 13 координату .может там чего то ...
Это ошибка у Андрея.
массив он формирует с числами начиная с нуля: 0 1 2 3...
А CASE настроены с 1.
Или CASE переделать с 0 или, что проще, поправить создание массива
FOR($a=0,$a<12)
ARRPUSH($arr, $a+1) // тут подготавливаем массив чисел
END_CYC
А ещё лучше возьми второй код из моего поста.
Там при изменениях нужно менять только в одном месте. Не нужно дописывать простыню из CASE
-
Спасибо !
Т.е вместо :
FOR($a=0,$a<13)
ARRPUSH($arr, $a) // пут подготавливаем массив чисел
END_CYC неправильно
надо :
FOR($a=1,$a<13)
ARRPUSH($arr, $a) // пут подготавливаем массив чисел
END_CYC правильно - замена $a=0 на $a=1 ?
Это из песни Помогите НОВИЧКУ . ну нуб я в программировании . но очень надо !
Best regards !
-
Спасибо !
Т.е вместо :
FOR($a=0,$a<13)
ARRPUSH($arr, $a) // пут подготавливаем массив чисел
END_CYC неправильно
надо :
FOR($a=1,$a<13)
ARRPUSH($arr, $a) // пут подготавливаем массив чисел
END_CYC правильно - замена $a=0 на $a=1 ?
Это из песни Помогите НОВИЧКУ . ну нуб я в программировании . но очень надо !
Best regards !
Неправильно. Точнее не совсем.
Было:
FOR($a=0, $a < 12)
ARRPUSH($arr, $a)
END_CYC
В массив пишешь или на 1 больше
FOR($a=0, $a < 12)
ARRPUSH($arr, $a+1)
END_CYC
Или перебираешь индексы не от 0 до MAX, а от 1 до MAX+1
FOR($a=1, $a < 12+1)
ARRPUSH($arr, $a)
END_CYC
- если меняешь начальное значение, меняй и конечное.
-
Дк кейсов 13 . потому и :
FOR($a=1,$a<13).
...а разве 12+1 не равно 13 . ведь скрипт писался с :
[ UNDEFINE($arr)
FOR($a=0,$a<12)
ARRPUSH($arr, $a) // пут подготавливаем массив чисел
END_CYC
$i = ARRSIZE($arr)-1
WHILE($i>0) // и рандомизируем его
$j = RND(0,$i)
IF($i ! $j)
$tmp = $arr[$j]
$arr[$j] = $arr[$i]
$arr[$i] = $tmp
END_IF
INC($i,-1)
END_CYC
FOR($a=0,($a<ARRSIZE($arr))&($a<6)) // будет выбрано 6 случайных секций
SWITCH($arr[$a])
CASE(1)
LCLICK(10,10) // координаты задай свои
CASE(2)
LCLICK(10,10)
CASE(3)
LCLICK(10,10)
CASE(4)
LCLICK(10,10)
CASE(5)
LCLICK(10,10)
CASE(6)
LCLICK(10,10)
CASE(7)
LCLICK(10,10)
CASE(8)
LCLICK(10,10)
CASE(9)
LCLICK(10,10)
CASE(10)
LCLICK(10,10)
CASE(11)
LCLICK(10,10)
CASE(12)
LCLICK(10,10)
DEFAULT
END_SWITCH
WAITMS(RND(300,400))
END_CYC
уважаемого Oravena . а там . в условии было 12 координат ...
...обьясните .плиз разницу между 13 и 12+1 . если координат участвующих в рандоме 13
Best regards !
-
Дк кейсов 13 . потому и :
FOR($a=1,$a<13).
...а разве 12+1 не равно 13 . ведь скрипт писался с :
уважаемого Oravena . а там . в условии было 12 координат ...
...обьясните .плиз разницу между 13 и 12+1 . если координат участвующих в рандоме 13
Best regards !
Все мои примеры для 12 координат! Обрати внимание на было - стало.
А там где у тебя кейсов 13, нужно писать уже 14.
...а разве 12+1 не равно 13 . ведь скрипт писался с :
Одно и то же.
Почему 12+1, а не 13? Для удобства изменения. Вот ты сейчас поменял кол-во координат с 12 на 13
Изменил только количество координат 13 :
Для этого просмотрел код и быстро где увидел 12 меняешь на 13. Где глаз зацепился за число 12...
А если через неделю нужно будет поменять на 18, так же быстро заменишь не вникая в сам код.
Вот чтобы не нужно было редактировать "внутри" основного кода я и предложил использовать другой. Где настройки всего в двух строках в начале, больше никуда лазить не нужно. И даже не нужно считать сколько там координат 12, 13 или 18. Просто дописываешь в строку сколько нужно и всё.
-
Спасибо !
В таком случае . как будет выглядеть мой ...код(он в этой теме ниже ) . с Вашей колокольни (количество координат 13)...
Если не трудно...
Best regards !
-
Да действительно там нужно написать $a+1
UNDEFINE($arr)
FOR($a=0,$a<13)
ARRPUSH($arr, $a+1) // пут подготавливаем массив чисел
END_CYC
$i = ARRSIZE($arr)-1
WHILE($i>0) // и рандомизируем его
$j = RND(0,$i)
IF($i ! $j)
$tmp = $arr[$j]
$arr[$j] = $arr[$i]
$arr[$i] = $tmp
END_IF
INC($i,-1)
END_CYC
FOR($a=0,($a<ARRSIZE($arr))&($a<6)) // будет выбрано 6 случайных секций
SWITCH($arr[$a])
CASE(1)
LCLICK(10,10) // координаты задай свои
CASE(2)
LCLICK(10,10)
CASE(3)
LCLICK(10,10)
CASE(4)
LCLICK(10,10)
CASE(5)
LCLICK(10,10)
CASE(6)
LCLICK(10,10)
CASE(7)
LCLICK(10,10)
CASE(8)
LCLICK(10,10)
CASE(9)
LCLICK(10,10)
CASE(10)
LCLICK(10,10)
CASE(11)
LCLICK(10,10)
CASE(12)
LCLICK(10,10)
CASE(13)
LCLICK(10,10)
DEFAULT
END_SWITCH
WAITMS(RND(300,400))
END_CYC
-
Доброго времени суток . господа и дамы .конечно !
Продолжим тему .
Спасибо Oravenу .за терпение и конечно же за помощь . от души ! ... но....
Как супермодератор Oraven относится к высказыванию супермодератора Vinta цитирую :
...Это ошибка у Андрея.
массив он формирует с числами начиная с нуля: 0 1 2 3...
А CASE настроены с 1.
Или CASE переделать с 0 или, что проще, поправить создание массива....????
P.S. Андрей - моё имя :) :) :)
Best regards !
-
Всё отлично - работают оба скрипта и Oraven и Vint супермодераторы ...
... у Oravena для новичков . чуть чуть знакомых со скриптам Clickermanna попроше ...
...а у Vinta придется еще спрашивать : ...
...а куда в предоставленный Вами код впечатать вот эту форму:...
... LCLICK(390,550+RND(+5,-5))...- это .если я правильно понимаю клик в эту кооординату с разбросом в 5.-5 ...
... сделано . чтобы в игре .как бы . не заподозрили . что das is clicker :)...
...ведь в скрипте только координаты и не через запятую .а. почемуто через : - это для меня вообще темный лес ...
Best regards !
-
... LCLICK(390,550+RND(+5,-5))...- это .если я правильно понимаю клик в эту кооординату с разбросом в 5.-5 ...
Best regards !
Здесь рандом воздействует только на Y координату.
Обычно пишется так
LCLICK(390+RND(-5,5),550+RND(-5,5))
-
...а куда в предоставленный Вами код впечатать вот эту форму:...
... LCLICK(390,550+RND(+5,-5))...- это .если я правильно понимаю клик в эту кооординату с разбросом в 5.-5 ...
... сделано . чтобы в игре .как бы . не заподозрили . что das is clicker :)...
...ведь в скрипте только координаты и не через запятую .а. почемуто через : - это для меня вообще темный лес ...
можешь и через запятую сделать, указав и разделитель - запятая.
Рандом добавляешь не в координаты, а уже в сам клик LCLICK он там один.
-
Как супермодератор Oraven относится к высказыванию супермодератора Vinta цитирую :
...Это ошибка у Андрея.
массив он формирует с числами начиная с нуля: 0 1 2 3...
А CASE настроены с 1.
И что здесь такого?
При написании кода
50% времени это планирование и разработка,
20% времени - написание кода и
50% - тестирование и исправление ошибок.
Итого КПД программиста 120% ;D
Исправление кода это большая и неотъемлимая часть любого проекта.
-
Благодарю !
...чтобы лишний раз не переспрашивать - вот сюда ?...
.... LCLICK($cx+RND(+5,-5), $cy+RND(+5,-5))...
...потому что проверить это в игре довольно дорого ...
Спасибо !
Best regards !
-
Сюда.