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

Основной раздел => Общие вопросы => Topic started by: qqq555 on October 17, 2014, 08:51:04 PM

Title: Рандомная подпрограмма
Post by: qqq555 on October 17, 2014, 08:51:04 PM
Друзья, никак не получается написать скрипт.
Есть 20 разных подпрограмм. нужно выполнить их в рандомном порядке без повторений.
Всем откликнувшимся спасибо!
Title: Re: Рандомная подпрограмма
Post by: Oraven on October 17, 2014, 09:41:37 PM
За место LOGWRITE ("Число 1")..., понятное дело, нужно написать вызов твоих подпрограмм. Запись в лог написано просто для тестирования.

Code: (clickermann) [Select]
IF(ARRSIZE($ARR) = 0)
   LOGWRITE ("Новый цикл")
   $count1 = 1 // начальное число
   $count2 = 20 // конечное число
   WHILE($count1 < $count2+1)
      ARRPUSH($ARR,$count1)
      INC($count1,1)
   END_CYC
END_IF
$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)
   LOGWRITE ("Число 1")
CASE(2)
   LOGWRITE ("Число 2")
CASE(3)
   LOGWRITE ("Число 3")
CASE(4)
   LOGWRITE ("Число 4")
CASE(5)
   LOGWRITE ("Число 5")
CASE(6)
   LOGWRITE ("Число 6")
CASE(7)
   LOGWRITE ("Число 7")
CASE(8)
   LOGWRITE ("Число 8")
CASE(9)
   LOGWRITE ("Число 9")
CASE(10)
   LOGWRITE ("Число 10")
CASE(11)
   LOGWRITE ("Число 11")
CASE(12)
   LOGWRITE ("Число 12")
CASE(13)
   LOGWRITE ("Число 13")
CASE(14)
   LOGWRITE ("Число 14")
CASE(15)
   LOGWRITE ("Число 15")
CASE(16)
   LOGWRITE ("Число 16")
CASE(17)
   LOGWRITE ("Число 17")
CASE(18)
   LOGWRITE ("Число 18")
CASE(19)
   LOGWRITE ("Число 19")
CASE(20)
   LOGWRITE ("Число 20")
DEFAULT
END_SWITCH
Title: Re: Рандомная подпрограмма
Post by: qqq555 on October 18, 2014, 11:59:08 AM
Спасибо огромное! теперь все таки придется изучать 4.10, ибо основной скрипт (около 500 строк) написан в 4.8