repeatable random numbers in an object
repeatable random numbers in an object
- Subject: repeatable random numbers in an object
- From: Roland King <email@hidden>
- Date: Wed, 17 Jun 2009 22:33:50 +0800
I need to generate repeatable sequences of random numbers for a game.
For each level I give it the seed and want the level to unfold the
same way it did before. I can guarantee that the calls to any random
function will be in exactly the same order, so provided I get the same
sequence out of the random generator, I'm good.
First thought was to use srand() [ yes it's a bad random number
generator but it's good enough for what want ] however it's global and
it's quite possible I'll have more than one 'level' running at the
same time. So I need an object which I can give a seed to and will
generate random numbers from that seed, and I need it to interoperate
independently of any other object of the same type being queried for
numbers.
I was thinking of wrapping the random(3) stuff [ initstate, random,
setstate .. etc ] in a cocoa class and using them, just using
setstate() each time before calling random(). I can guarantee this all
on one thread so I will not have the issue that setstate() is called
in one thread and random in another, thus totally messing up someone
else's generator.
I had a hunt for an objective-C class which already did this but
didn't find one. Anyone know of one or a better solution to this
before I go write it? The sort of methods I'd expect are ..
MyRandom *myRandom = [ [ MyRandom alloc ] initWithSeed:seed ];
int nextRandom = [ myRandom nextRandom ];
where the sequence produced by myRandom is predictable and not
affected by any other MyRandom objects out there.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden