$Random: Difference between revisions
m (1 revision) |
(Automatically generated page update) |
||
Line 15: | Line 15: | ||
==Syntax== | ==Syntax== | ||
<p class="syntax" | <p class="syntax">%result = $Random(minimum, maximum, %SEED) | ||
</p> | |||
<p> | <p> | ||
</p> | </p> |
Revision as of 18:17, 10 April 2013
Get next random number
Most Sirius $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $Random function is the RandomNumberGenerator class.
This function returns either an unpredictable random number, or the next number in a series of random numbers.
$Random accepts three optional arguments and returns an integer number.
The first argument specifies the smallest value that will be returned; the minimum value of this argument is the same as its default: -1,000,000,000.
The second argument specifies the greatest value that will be returned; the maximum value of this argument is the same as its default: 1,000,000,000. This argument must be greater than the smallest value that will be returned.
The third argument is a %variable or IMAGE item that was set to a random number seed using $Random_Seed. This argument must be a string of length at least 144. If this argument is omitted, the number returned is unpredictable; if it is present, the seed determines a specific series of random numbers, and each call to $Random returns the next number in that series.
Syntax
%result = $Random(minimum, maximum, %SEED)
%result contains a random number greater than or equal to minimum and less than or equal to maximum.
If any argument is invalid, the request is cancelled.
In the following example
%I = 5 REPEAT WHILE %I GT 0 %N = $Random(1, 52) IF %CARD(%N) NE THEN PRINT %CARD(%N) %I = %I - 1 %CARD(%N) = END IF END REPEAT
an unpredictable hand of 5 playing cards is "dealt".
In the following example
%HAND STRING LEN 144 REPEAT FOREVER %X = $READ('Pick a 4-digit hand number') IF %X EQ 0 THEN %X = $Random(1, 9999) END IF IF %X GT 0 AND %X LT 10000 THEN LOOP END END IF PRINT 'I said a 4 digit number!' END REPEAT PRINT 'You are playing hand number' AND %X %X = $Random_Seed(%HAND, %X) %I = 5 REPEAT WHILE %I GT 0 %N = $Random(1, 52, %HAND) IF %CARD(%N) NE THEN PRINT %CARD(%N) %I = %I - 1 %CARD(%N) = END IF END REPEAT
a hand of 5 playing cards is "dealt", and the "player" can either ask for the particular hand to play, or can just hit enter, and get an unpredictable hand.
Products authorizing $Random
- Sirius functions
- Fast/Unload User Language Interface
- Janus Open Client
- Janus Open Server
- Janus Sockets
- Janus Web Server
- Japanese functions
- Sir2000 Field Migration Facility