Question

So I've got an interesting issue. I've got a code snippet below of a function that accepts two integers and returns two integers (x y coordinates). I generate 5 objects for it in a loop. On a Mac it returns two random numbers that are different from the others. On a PC it always returns the two exact numbers, even though I'm seeding it every time. Any ideas?

local randomSeed = 60

randomCoord = function(bufferX,bufferY)
    -- randomCoord
    -- int, int - get a buffer from the edge
    -- returns two random coordinates that are within background Plane space
    print( randomSeed )
    math.randomseed(randomSeed + os.time())
    randomSeed = randomSeed + os.time()
    local x = math.random(backgroundBounds.xMin + bufferX,backgroundBounds.xMax - bufferX)
    local y = math.random(backgroundBounds.yMin + bufferY,backgroundBounds.yMax - bufferY)
    print('random x '..x..'  random y '..y)
    return x, y
end

backgroundBounds is just a table with integers (being the size of the backgroundBox).

Was it helpful?

Solution

Most of the time, in most languages out there, the random number facilities expect to be seeded only once. Seeding them again can produce unexpected results like returning the same sequence of numbers.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top