Yoko
http://forum.yoko.com.ua/

команда random
http://forum.yoko.com.ua/viewtopic.php?f=20&t=4177
Page 1 of 1

Author:  Mihail [ 2005-06-09 11:12:09 ]
Post subject:  команда random

есть такая команда random на инжекте? к примеру я задаю несколько переменных, например время:
a=500ms
b=600ms
c=700ms
как мне сделать так что if "какое-нибудь условие" then
random(a,b,c) чтобы он случайным образом выбирал задержку a, b или c?
буду очень признателен!

Author:  Solaire [ 2005-06-09 11:26:22 ]
Post subject: 

Если тебе нужны именно такие задержки, сделай так:
Code:
VAR R
if ........................ then
   R=UO.Random(3)*100+400
endif

Author:  Mihail [ 2005-06-09 12:39:46 ]
Post subject: 

Solaire wrote:
Если тебе нужны именно такие задержки, сделай так:
Code:
VAR R
if ........................ then
   R=UO.Random(3)*100+400
endif

спасибо большое.. :)

Author:  Mihail [ 2005-06-09 12:55:17 ]
Post subject: 

а если к примеру мне надо установить рандом между 4-мя переменными?
но чтобы они как бы не повторялись.. допустим есть у меня a, b, c и d. сначала он выбирает любую из этих переменных, затем выбирает из оставшихся трех, затем из двух ну и последнюю..

Author:  Solaire [ 2005-06-09 16:27:29 ]
Post subject: 

Mihail wrote:
а если к примеру мне надо установить рандом между 4-мя переменными?
но чтобы они как бы не повторялись.. допустим есть у меня a, b, c и d. сначала он выбирает любую из этих переменных, затем выбирает из оставшихся трех, затем из двух ну и последнюю..

Вот. Мучалась долго. :) Выдает элементы массива а в призвольном порядке.
Code:
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

Author:  Mihail [ 2005-06-09 18:41:02 ]
Post subject: 

Solaire wrote:
Mihail wrote:
а если к примеру мне надо установить рандом между 4-мя переменными?
но чтобы они как бы не повторялись.. допустим есть у меня a, b, c и d. сначала он выбирает любую из этих переменных, затем выбирает из оставшихся трех, затем из двух ну и последнюю..

Вот. Мучалась долго. :) Выдает элементы массива а в призвольном порядке.
Code:
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

спасибо большое, теперь буду долго пытаться осмыслить прочитанное :)

Author:  Solaire [ 2005-06-09 18:51:17 ]
Post subject: 

Mihail wrote:
спасибо большое, теперь буду долго пытаться осмыслить прочитанное :)

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

Author:  Edred [ 2005-06-09 21:39:29 ]
Post subject: 

Хмм, я бы вставил проверку что k = i. Чтобы уже без рандома возвращало единственное значение. Я честно говоря не уверен (и лень проверять) как скриптовый модуль воспримет пожелание вернуть random(0)

Author:  Solaire [ 2005-06-10 06:14:25 ]
Post subject: 

Edred wrote:
Хмм, я бы вставил проверку что k = i. Чтобы уже без рандома возвращало единственное значение. Я честно говоря не уверен (и лень проверять) как скриптовый модуль воспримет пожелание вернуть random(0)

Так у меня так и есть.
Вот здесь: T[i]=a[k]
Все нормально работает, тестила.

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/