4 pièce(s) jointe(s)
Problème de génération aléatoire
Bonsoir tout le monde :)
Dans le cadre d'un projet d'école je dois programmer un petit jeu vidéo dans lequel je manipule des armes.
J'aimerais faire en sorte que le nom de l'arme soit générées aléatoirement parmi une cinquantaine de nom.
Pour cela j'ai d'abord mis en place mon tableau de nom d'armes où j'y ai stocké 50 noms :
char* weaponNames[] = {
"Épée de feu",
"Arc de Glace",
"Lance des Ombres",
...
J'ai ensuite crée une fonction generateRandomIndex :
Code:
1 2 3 4 5
| int generateRandomIndex() {
srand(time(NULL));
int index = rand() % 50;
return index;
} |
Et j'appelle cette fonction dans une fonction createWeapon dans laquelle j'initialise les variables de la structure de mon arme "weapon" :
(Voici la partie qui concerne le nom de mon arme)
Code:
1 2
| int randomIndex = generateRandomIndex();
newWeapon->name = weaponNames[randomIndex]; |
Quand je lance mon programme, j'instancie plusieurs armes à la suite par le biais de la fonction createWeapon, mais le nom censé être aléatoire est le même pour toutes mes armes.
Autre information, la variable name de la structure Weapon est sous la forme "char *name;", soit un pointeur de caractères.
Comment puis-je obtenir un nom différent pour chacune de mes armes ?
Merci de prendre le temps de me lire et d'essayer de m'aider à la résolution de mon problème ! :)
J'ai trouvé ma propre erreur
J'avais déjà utilisé "srand(time(NULL));" dans mon code pour générer des monstres, et je crois comprendre qu'il n'est nécessaire d'avoir qu'un seul appel de cette fonction pour que la génération aléatoire fonctionne.