5: BASIC Stamp Command Reference – RANDOM
BASIC Stamp Programming Manual 2.0c • www.parallaxinc.com • Page 251
RANDOM
BS1 BS2 BS2e BS2sx BS2p
RANDOM Variable
Function
Generate a pseudo-random number.
• Variable is a variable (usually a word) whose bits will be scrambled
to produce a random number. Variable acts as RANDOM's input
and its result output. Each pass through RANDOM stores the next
number, in the pseudorandom sequence, in Variable.
Explanation
RANDOM generates pseudo-random numbers ranging from 0 to 65535.
They’re called “pseudo-random” because they appear random, but are
generated by a logic operation that uses the initial value in Variable to "tap"
into a sequence of 65535 essentially random numbers. If the same initial
value, called the "seed", is always used, then the same sequence of
numbers is generated. The following example demonstrates this:
SYMBOL Result = W0
Loop:
Result = 11000 ' Set initial "seed" value
RANDOM Result ' Generate random number.
DEBUG Result ' Show the result on screen.
GOTO Loop
-- or --
Result VAR WORD
Loop:
Result = 11000 ' Set initial "seed" value
RANDOM Result ' Generate random number
DEBUG DEC ? Result ' Show the result on screen.
GOTO Loop
In this example, the same number would appear on the screen over and
over again. This is because the same seed value was used each time;
specifically, the first line of the loop sets Result to 11,000. The RANDOM
command really needs a different seed value each time. Moving the
"Result =" line out of the loop will solve this problem, as in:
2
2
2
2
2
2