Уроки Flash: Создаём генератор случайных чисел
В попытках сгенерировать 10 случайных не
повторяющихся чисел я пришел вот к такому решению:
Set Variable: "i" = 1
Loop While (i <> 11)
Set Variable: "rnd" = Random (10)
Set Variable: "x" = 1
Loop While (x <> (Length(Temp)+1))
If ((Substring (Temp, x, 1)) eq rnd)
Set Variable: "rnd" = ""
End If
Set Variable: "x" = x+1
End Loop
If (rnd ne "")
Set Variable: "Temp" = Temp & rnd
Set Variable: "i" = i + 1
End If
End Loop
Давайте разберёмся в коде шаг за шагом. Сначала мы
определили преременную "i" и присвоили ей значение
1 для
использования в цикле Loop While.
Set Variable: "i" = 1
Первый Loop прогоняется 10 раз т.к. нам надо 10
чисел
Loop While (i <> 11)
Мы используем функцию Random и её результат
помещаем в переменную "rnd"
Set Variable: "rnd" = Random (10)
Переменная "x" используется для проверки значения
в переменной "Temp" в которой будет размещен
окончательный
результат.
Set Variable: "x" = 1
И в конце:
Loop While (x <> (Length(Temp)+1))
If ((Substring (Temp, x, 1)) eq rnd)
Set Variable: "rnd" = ""
End If
Set Variable: "x" = x+1
End Loop
Этот фрагмент проверяет, есть ли сгенерированное
число расположенное в переменной "rnd" в
переменной "Temp". Это
сделано просмотром каждой цифры в переменной
"Temp". Число лупов определяется функцией Length.
Если число уже
есть, то переменная "rnd" очищается. Если
сгенерированное число отсутствует в переменной
"Temp", то оно туда заносится.
If (rnd ne "")
Set Variable: "Temp" = Temp & rnd
Set Variable: "i" = i + 1
End If
Продалжаем же Loop мы увеличением переменной "i".
| | |
|