Difference between revisions of "RandomGenerator:setState"

 
m
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
#REDIRECT [[RandomGenerator:setSeed]]
+
{{newin|[[0.9.1]]|091|type=function}}
 +
Sets the current state of the random number generator. The value used as an argument for this function is an opaque string and should only originate from a previous call to [[RandomGenerator:getState]] in the same major version of LÖVE.
 +
 
 +
This is different from [[RandomGenerator:setSeed]] in that setState directly sets the RandomGenerator's current implementation-dependent state, whereas setSeed gives it a new seed value.
 +
 
 +
== Function ==
 +
=== Synopsis ===
 +
<source lang="lua">
 +
RandomGenerator:setState( state )
 +
</source>
 +
=== Arguments ===
 +
{{param|string|state|The new state of the RandomGenerator object, represented as a string. This should originate from a previous call to [[RandomGenerator:getState]].}}
 +
=== Returns ===
 +
Nothing.
 +
== Notes ==
 +
The effect of the state string does not depend on the current operating system.
 +
== Examples ==
 +
<source lang="lua">
 +
rng = love.math.newRandomGenerator(os.time())
 +
 
 +
for i=1, 100 do
 +
    -- Use some random numbers.
 +
    rng:random()
 +
end
 +
 
 +
-- Make a new RandomGenerator and set its state to the current state of the first one.
 +
rng2 = love.math.newRandomGenerator()
 +
rng2:setState(rng:getState())
 +
 
 +
-- Both 'rng' and 'rng2' will now give the same results.
 +
assert(rng:random() == rng2:random())
 +
</source>
 +
== See Also ==
 +
* [[parent::RandomGenerator]]
 +
* [[RandomGenerator:getState]]
 +
[[Category:Functions]]
 +
{{#set:Description=Sets the current state of the random number generator.}}
 +
== Other Languages ==
 +
{{i18n|RandomGenerator:setState}}

Latest revision as of 21:30, 7 June 2019

Available since LÖVE 0.9.1
This function is not supported in earlier versions.

Sets the current state of the random number generator. The value used as an argument for this function is an opaque string and should only originate from a previous call to RandomGenerator:getState in the same major version of LÖVE.

This is different from RandomGenerator:setSeed in that setState directly sets the RandomGenerator's current implementation-dependent state, whereas setSeed gives it a new seed value.

Function

Synopsis

RandomGenerator:setState( state )

Arguments

string state
The new state of the RandomGenerator object, represented as a string. This should originate from a previous call to RandomGenerator:getState.

Returns

Nothing.

Notes

The effect of the state string does not depend on the current operating system.

Examples

rng = love.math.newRandomGenerator(os.time())

for i=1, 100 do
    -- Use some random numbers.
    rng:random()
end

-- Make a new RandomGenerator and set its state to the current state of the first one.
rng2 = love.math.newRandomGenerator()
rng2:setState(rng:getState())

-- Both 'rng' and 'rng2' will now give the same results. 
assert(rng:random() == rng2:random())

See Also

Other Languages