Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: iliddannnn on September 17, 2020, 03:03:20 PM
-
Добрый день всем!
$1=100
$2=200
$3=300
$4=350
$rnd=RND(1,4)
$a=$a+strconcat ("$" , $rnd)
LOGWRITE ($a)
Переменные 1-4 имеют свое значение в цифрах. Мне нужно что бы рандомно выбиралась переменная, и присвоенное значение этой случайной переменной добавлялось к переменной $a, и выводилось в лог.
На выходе с этого скрипта я получаю в лог
23:06:39 0+"$51"
11:41:46 0+"$2"
11:41:47 0+"$32"
11:41:48 0+"$38"
То есть выводится - 0+"$51". Он выводит как набор символов эту строку, хотя по идее $51 должно восприниматься прогой как значение переменной $51. Как можно заставить читать ее?
Варинт тип такого RNDFROM ($1, $2, $3) работает, но дело в том, что мне нужно знать какую именно переменную выбрал рандом, и присваивать ей значение 0 после выполнения скрипта (в моем случае после вывода суммы в лог). То есть все работает, но не знаю как в этом случае присовоить выбранной переменной ноль. Переменных больше чем 4, и некоторые из них имеют одинаковые значения. Прошу помощи)))) :)
-
Там где нужно применение группы однотипных переменных и придумали массивы.
// создаём массив со значениями
STRSEPARATE("100:200:300:350", ":", $arr)
// в $rnd случайный индекс массива от 0 до 3
$rnd = RND(0, 3)
// прибавляем к $a значение массива по твоему рандомному индексу
$a = $a + $arr[$rnd]
LOGWRITE($a)
// присваиваем значение 0
$arr[$rnd] = 0
-
Ну можно конечно ещё через GETVAR SETVAR, но это не так гибко и запутаться гораздо легче.
К тому же лучше сразу привыкать делать нормально, как есть почти во всех языках, а не как в паре штук.
Внимание! Не повторять дома!
$1 = 100
$2 = 200
$3 = 300
$4 = 350
$rnd = RND(1, 4)
$name = strconcat("$", $rnd)
$a = $a + GETVAR($name)
LOGWRITE($a)
SETVAR($name, 0)
// что стало с переменными
LOGWRITE($1, " ", $2, " ", $3, " ", $4)
HALT
-
ОГРОМНОЕ ;) ;) ;)