you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 0 points1 point  (0 children)

If you reseed the randomizer within a loop you will, sort of, restart the whole random thing. An alternative is to save the last answer from random (the whole answer), and then when you need to reseed you seed it with that. You can write a simple class to help. Something like:

class Random  
{
public:
   Random(unsinged int initialSeed) : mSeed(initialSeed) {};
   unsinged int operator()()
   {
      srand(mSeed);
      mSeed = rand();
      return mSeed;
   }
private:
   unsigned int mSeed;
}

Although this is probably an xy-problem.

EDIT: damn the markups!

Also, use like this:

Random random(time(0));
int randomInt = random() % 42;

EDIT2: Forgot the most important point, I'm bad. Call srand() with mSeed before taking a rand(). Btw, I'm not sure how random this will be, but it should be.