Salve devo fare una random ricorsiva ma mi da sempre gli stessi valori...la funzione permette di pescare carte dal mazzo di gioco di una partita di poker....la funziona che viene chiamata 5 volte è questa:
codice:
void Poker::newcard()
{
if(testa!=0)
{
testa=new carta;
testa->next=ptr;
}
if(testa==0)
{
testa=new carta;
testa->next=0;
}
ptr=testa;
int valore;
int seme;
srand ( time(0) );
valore=rand()%13 + 1;
seme=rand()% 4+1;
if(seme==1)
{
testa->seme='C';
}
if(seme==2)
{
testa->seme='Q';
}
if(seme==3)
{
testa->seme='P';
}
if(seme==4)
{
testa->seme='F';
}
}
solamente che i valori che ottengo sono della stessa carta...ho pensato che fosse un problema di seed ovvero la costante che prende il pc dal tempo di sistema è la stessa poichè i calcoli vengono effettuati subito, per questo motivo ho fatto un ciclo for abbastanza lungo e l'ultima carta cambiava...le altre rimanevano uguali...qualcuno conosce un modo per ottenere sempre valori diversi? senza rallentare il programma con sleep e for...grazie