Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: Kedrick on February 24, 2015, 10:02:32 AM
-
С массивами я вообще никогда не работал и даже после изучения статьи и справки не могу внятно сообразить что делать. Прошу помощи.
В игре 3 раза в сутки появляется на несколько минут мини-игра, руками я успеваю поймать только один заход, и хочется чтобы кликер остальные разы отрабатывал без меня. Победа приятна но не критична, награда прокачивается за количество попыток а не побед.
Имеется поле из 6х4 клеток. На нем есть 5 нужных клеток (ключи), 6 вредных (зеленые пятна) и 13 нейтральных (желтые пятна).
Соответственно количество кликов не ограничено. Для выигрыша надо найти 5 полезных клеток. При попадании на 5 вредных, игра заканчивается проигрышем. Но выигрыш не критичен, поэтому я хочу просто рандомно прокликивать игровое поле пока не найдется 5 ключей или 5 зеленых клякс. Победу или поражение (для остановки кликов) я смогу проконтролировать сам по верхней части картинки где все отображается
(http://c2n.me/3d1M0hm.jpg)
Написать нужную мне подпрограмму я смогу и через жопу, с обьявлением кучи переменных с координатами и рандомным выбором из них нужных. Но это будет неоптимально и содержит много букв.
Прошу показать пример работы с массивом если такое возможно.
Поочередную выборку координат из стэка я нашел в примере, но не знаю как сделать произвольную и не повторяющую уже кликанные.
Координаты всех клеток поля всегда одинаковы, такчто массив можно заполнить и из заранее заготовленного файла.
-
Можешь и через массив, можешь через строки.
Вот массив
LOGCLEAR
$count1 = 0 // начальное число
$count2 = 23 // конечное число
$startX = 454 // координаты центра первой клетки
$startY = 503
IF(ARRSIZE($ARR) = 0)
WHILE($count1 < $count2+1)
ARRPUSH($ARR,$count1)
INC($count1,1)
END_CYC
END_IF
$ARR_SIZE = ARRSIZE($ARR)
FOR ($i, $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
//FOR($INARR=0,$INARR<ARRSIZE($ARR))
// LOGWRITE ("[",$INARR,"] = ",$ARR[$INARR])
//END_CYC
//LOGWRITE (" ")
FOR($i=0,$i < 5) // пять твоих случайных клеток
$r = ARRPOP($ARR)
$X = $startX + ($r - INT($r/6)*6)*45
$Y = $startY + INT($r/6)*45
LOGWRITE ("Клетка № ",$r+1, " x/y: ",$X, "/", $Y)
MOVE($X,$Y)
WAIT(3)
END_CYC
HALT
-
Спасибо.
Для меня это филькина грамота с парой знакомых букв, буду разбираться по уже готовому рабочему примеру. 8)
Чуть позже выложу тут то что намучу под конкретное место.