Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: hoho1 on December 28, 2016, 02:43:04 PM

Title: Сократить текст скрипта вызова рандомной функции
Post by: hoho1 on December 28, 2016, 02:43:04 PM
Имеем
Code: (clickermann) [Select]
$choice= RND (1, 20)
if ($choice=1)
promo_1 ()
end_if

......

if ($choice=20)
promo_20 ()
end_if

Попытка подставить вместо имени подпрограммы конструкцию
STRCONCAT("promo_", $choice)
не сработала.
Можно ли как-то прописАть вызов рандомной подпрограммы не повторяя двадцать раз конструкцию if....end-if
Спасибо
Title: Re: Сократить текст скрипта вызова рандомной функции
Post by: Vint on December 28, 2016, 02:55:34 PM
Потому что вызов подпрограммы это команда, а не строка.
В любом случае нужно будет условиями делить. Удобней через SWITCH
Code: (clickermann) [Select]
SWITCH($choice)
CASE(1)
    promo_1()
CASE(2)
    promo_2()
   
    ...........
   
CASE(20)
    promo_20()
END_SWITCH

Кстати, у тебя скобок в вызовах не хватает
Title: Re: Сократить текст скрипта вызова рандомной функции
Post by: Vint on December 28, 2016, 02:58:00 PM
А что подпрограммы совсем совсем разные? Если нет, может там часть параметров только менять от варианта?
Title: Re: Сократить текст скрипта вызова рандомной функции
Post by: hoho1 on December 28, 2016, 03:02:59 PM
Да, к сожалению подпрограммы все разные, посему просто изменением входных параметров не отделаться.
Со скобочками протупил, уже добавил.
Title: Re: Сократить текст скрипта вызова рандомной функции
Post by: hoho1 on December 28, 2016, 04:37:30 PM
В любом случае нужно будет условиями делить
Тогда другого выхода не остается, только вынести выбор и набор подпрограмм в отдельный SUB, чтобы не загромождать текст основного скрипта.
Code: (clickermann) [Select]
$choice= RND (1, 20)
promo ($choice)