[DEBUTANT] Fonction rand ()

kojiro2 Messages postés 20 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 2 juillet 2004 - 9 nov. 2003 à 16:30
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 9 nov. 2003 à 16:46
G un problème avec la fonction rand dans un pti jeu
ke je suis en train de faire.
Je veux générer un nombre aléatoire (jusque là pas de pb).
Ce nombre aléatoire correspond à une case de mon tableau qui
contient les valeurs que je veux voir apparaitre aléatoirement.
Et ensuite rangé ces valeurs dans un autre tableau.
NB: Je veu voir apparaitre 6 valeurs de mon tableau table[]
Pour ce faire j'utilise cette fonction :

int plaque(void)
{
int table[15]={0,1,2,3,4,5,6,7,8,9,25,50,10,75,100};
int k;
srand((unsigned)time(NULL));
k=1+(rand()%14);
return table[k];
}

Et dans ma fonction principale j'intègre cette fonction comme ceci :

for(i=0;i<=NB_CASES;i++)
{
chiffres[i]=plaque();
printf("%i ",chiffres[i]);
}

Mon problème est qu'il me génère bien un nombre aléatoire
mais c'est a chaque fois le meme k et par conséquent la meme
valeur du tableau.
Voila j'espère que ce ke g écrit est compréhnsible et que quelqun
pourra m'éclairer un peu car là je vois pas d'ou vien le pb.

2 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
9 nov. 2003 à 16:40
Salut,
initialise srand comme ca: srand(GetTickCount());
Mais surtout initialise le au debut de ta fonction main, et pas dans la fonction plaque().
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 nov. 2003 à 16:46
k=1+(rand()%14);
tu ne veux jamais table[0] ?
BruNews, ciao...
0
Rejoignez-nous