Author Topic: Рандомная подпрограмма  (Read 1272 times)

0 Members and 1 Guest are viewing this topic.

qqq555

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Рандомная подпрограмма
« on: October 17, 2014, 08:51:04 PM »
Друзья, никак не получается написать скрипт.
Есть 20 разных подпрограмм. нужно выполнить их в рандомном порядке без повторений.
Всем откликнувшимся спасибо!

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Рандомная подпрограмма
« Reply #1 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

qqq555

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: Рандомная подпрограмма
« Reply #2 on: October 18, 2014, 11:59:08 AM »
Спасибо огромное! теперь все таки придется изучать 4.10, ибо основной скрипт (около 500 строк) написан в 4.8