void SeedRandomizer (void) //Fonction préparent le randomizer
{
SYSTEMTIME systime;
UINT setseed = 0;
GetSystemTime(&systime); //Recupération du temps système
setseed = ((UINT)systime.wYear + (UINT)systime.wMonth + (UINT)systime.wDayOfWeek + (UINT)systime.wDay+ (UINT)systime.wHour + (UINT)systime.wMinute + (UINT)systime.wSecond + (UINT)systime.wMilliseconds);
/*
Addition de l'année, le mois, la semaine etc
Cette méthode assure de ne jamais avoir deux fois dans toute une vie le même nombre à la même période de temp (le chiffre généré le 01/01/05 peut être égale le 01/01/20 si l'année n'est pas additionné)
*/
srand(setseed);
}
int ReturnRandomNumber (int Min, int Max) //Fonction retournent le nombre
{
int Result = 0;
Result = ((rand() % (int)(((Max) + 1) - (Min))) + (Min)); // Calcule du nombre à retourner selon les paramêtres
return Result;
}
VERSION 2:
void InitRandomizer(void)
{
LARGE_INTEGER li;
QueryPerformanceCounter(&li);
srand(li.LowPart);
}
int RandomLimited(int iMin, int iMax)
{
if(iMax == iMin) return iMax;
if(iMax < iMin) {
int t;
t = iMin;
iMin = iMax; iMax = t;
}
return iMin + (rand() % (iMax - iMin + 1));
}