$Random: Difference between revisions
m (1 revision) |
m (misc cleanup) |
||
(34 intermediate revisions by 4 users not shown) | |||
Line 2: | Line 2: | ||
<span class="pageSubtitle">Get next random number</span> | <span class="pageSubtitle">Get next random number</span> | ||
<p class=" | <p class="warn"><b>Note: </b>Many $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $Random function is the <var>[[RandomNumberGenerator class|RandomNumberGenerator]]</var> class.</p> | ||
This function returns either an unpredictable random number, or the next number in a series of random numbers. | This function returns either an unpredictable random number, or the next number in a series of random numbers. | ||
< | ==Syntax== | ||
<p class="syntax"><span class="term">%result</span> = <span class="literal">$Random</span>([<span class="term">minimum</span>], [<span class="term">maximum</span>], [<span class="term">%seed</span>]) | |||
</p> | |||
<table> | |||
<tr><th>%result</th> | |||
<td>A numeric variable to receive an integer greater than or equal to <var class="term">minimum</var> and less than or equal to <var class="term">maximum</var>.</td></tr> | |||
The | <tr><th>minimum</th> | ||
<td>The smallest value that will be returned; the minimum value of this argument is the same as its default: -1,000,000,000. </td></tr> | |||
The | <tr><th>maximum</th> | ||
<td>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. </td></tr> | |||
<tr><th>%seed</th> | |||
<td>A %variable or IMAGE item that was set to a random number seed using <var>[[$Random_Seed]]</var>. This argument must be a string of length at least 144. | |||
<p> | |||
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 <var>$Random</var> returns the next number in that series. </p></td></tr> | |||
</table> | |||
== | If any argument is invalid, the request is cancelled. | ||
<p class=" | |||
==Examples== | |||
<ol> | |||
<li>In the following example an unpredictable hand of 5 playing cards is "dealt". | |||
<p class="code">%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 | |||
</p> | </p> | ||
<li>In the following example 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. | |||
<p class="code">%HAND STRING LEN 144 | |||
<p class="code"> %I = 5 | REPEAT FOREVER | ||
%X = $READ('Pick a 4-digit hand number') | |||
%N = $Random(1, 52) | IF %X EQ 0 THEN | ||
IF %CARD(%N) NE | %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) | PRINT %CARD(%N) | ||
%I = %I - 1 | %I = %I - 1 | ||
%CARD(%N) = | %CARD(%N) = '' | ||
END IF | END IF | ||
END REPEAT | |||
</p> | </p> | ||
</ol> | |||
==Products authorizing {{PAGENAMEE}}== | |||
<ul class="smallAndTightList"> | <ul class="smallAndTightList"> | ||
<li>[[Sirius functions]]</li> | <li>[[List of $functions|Sirius functions]]</li> | ||
<li>[[Fast/Unload User Language Interface]]</li> | <li>[[Fast/Unload User Language Interface]]</li> | ||
<li>[[Janus Open Client]]</li> | <li>[[Media:JoclrNew.pdf|Janus Open Client]]</li> | ||
<li>[[Janus Open Server]]</li> | <li>[[Media:JosrvrNew.pdf|Janus Open Server]]</li> | ||
<li>[[Janus Sockets]]</li> | <li>[[Janus Sockets]]</li> | ||
<li>[[Janus Web Server]]</li> | <li>[[Janus Web Server]]</li> | ||
<li> | <li>Japanese functions</li> | ||
<li>[[Sir2000 Field Migration Facility]]</li> | <li>[[Media:SirfieldNew.pdf|Sir2000 Field Migration Facility]]</li> | ||
</ul> | </ul> | ||
[[Category:$Functions|$Random]] | [[Category:$Functions|$Random]] |
Latest revision as of 18:40, 21 April 2016
Get next random number
Note: Many $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.
Syntax
%result = $Random([minimum], [maximum], [%seed])
%result | A numeric variable to receive an integer greater than or equal to minimum and less than or equal to maximum. |
---|---|
minimum | The smallest value that will be returned; the minimum value of this argument is the same as its default: -1,000,000,000. |
maximum | 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. |
%seed | 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. |
If any argument is invalid, the request is cancelled.
Examples
- In the following example an unpredictable hand of 5 playing cards is "dealt".
%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
- In the following example 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.
%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