Page 1 of 1
команда random
Posted: 2005-06-09 11:12:09
by Mihail
есть такая команда random на инжекте? к примеру я задаю несколько переменных, например время:
a=500ms
b=600ms
c=700ms
как мне сделать так что if "какое-нибудь условие" then
random(a,b,c) чтобы он случайным образом выбирал задержку a, b или c?
буду очень признателен!
Posted: 2005-06-09 11:26:22
by Solaire
Если тебе нужны именно такие задержки, сделай так:
Code: Select all
VAR R
if ........................ then
R=UO.Random(3)*100+400
endif
Posted: 2005-06-09 12:39:46
by Mihail
Solaire wrote:Если тебе нужны именно такие задержки, сделай так:
Code: Select all
VAR R
if ........................ then
R=UO.Random(3)*100+400
endif
спасибо большое..

Posted: 2005-06-09 12:55:17
by Mihail
а если к примеру мне надо установить рандом между 4-мя переменными?
но чтобы они как бы не повторялись.. допустим есть у меня a, b, c и d. сначала он выбирает любую из этих переменных, затем выбирает из оставшихся трех, затем из двух ну и последнюю..
Posted: 2005-06-09 16:27:29
by Solaire
Mihail wrote:а если к примеру мне надо установить рандом между 4-мя переменными?
но чтобы они как бы не повторялись.. допустим есть у меня a, b, c и d. сначала он выбирает любую из этих переменных, затем выбирает из оставшихся трех, затем из двух ну и последнюю..
Вот. Мучалась долго.

Выдает элементы массива а в призвольном порядке.
Code: Select all
sub Rand()
VAR R, k=3, i=0
DIM a[4], T[4]
a[0]='500'
a[1]='600'
a[2]='700'
a[3]='800'
repeat
R=UO.Random(k)
T[i]=a[R]
a[R]=a[k]
a[k]=T[i]
k=k-1
i=i+1
until k==0
T[i]=a[k]
for i=0 to 3
UO.Print(T[i])
wait(1000)
next
end sub
Posted: 2005-06-09 18:41:02
by Mihail
Solaire wrote:Mihail wrote:а если к примеру мне надо установить рандом между 4-мя переменными?
но чтобы они как бы не повторялись.. допустим есть у меня a, b, c и d. сначала он выбирает любую из этих переменных, затем выбирает из оставшихся трех, затем из двух ну и последнюю..
Вот. Мучалась долго.

Выдает элементы массива а в призвольном порядке.
Code: Select all
sub Rand()
VAR R, k=3, i=0
DIM a[4], T[4]
a[0]='500'
a[1]='600'
a[2]='700'
a[3]='800'
repeat
R=UO.Random(k)
T[i]=a[R]
a[R]=a[k]
a[k]=T[i]
k=k-1
i=i+1
until k==0
T[i]=a[k]
for i=0 to 3
UO.Print(T[i])
wait(1000)
next
end sub
спасибо большое, теперь буду долго пытаться осмыслить прочитанное

Posted: 2005-06-09 18:51:17
by Solaire
Mihail wrote:спасибо большое, теперь буду долго пытаться осмыслить прочитанное

Да не за что. Мне самой интересно стало; полезная функция, оказывается, этот рандом.

Posted: 2005-06-09 21:39:29
by Edred
Хмм, я бы вставил проверку что k = i. Чтобы уже без рандома возвращало единственное значение. Я честно говоря не уверен (и лень проверять) как скриптовый модуль воспримет пожелание вернуть random(0)
Posted: 2005-06-10 06:14:25
by Solaire
Edred wrote:Хмм, я бы вставил проверку что k = i. Чтобы уже без рандома возвращало единственное значение. Я честно говоря не уверен (и лень проверять) как скриптовый модуль воспримет пожелание вернуть random(0)
Так у меня так и есть.
Вот здесь: T[i]=a[k]
Все нормально работает, тестила.