C++ tableaux, aléatoire

Résolu
lanaën Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
lanaën Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je souhaite programmer un petit jeu, le treasure hunt(chasse au trésor).
Cependant, je bloque sur une partie.

Je dois généré un nombre aléatoire

int hasard()
{
return (rand());
}

Ensuite je dis que cette valeur doit etre mis dans un tableau
for (i=1; i<=MAX_LIGNE-1; i++)
for (j=1; j<=MAX_COLONE-1; j++)
tab[i][j] = hasard();
Et en fonction du chiffre je lui dit d'afficher une image

if(tab[i][j] == 1)
applySurface(20,20,source01,ecran,&case_vide);

if(tab[i][j] == 2)
applySurface(40,40,source01,ecran,&case_vide);






Le programme compile, mais je n'ai aucune image qui s'affiche, j'utilise la SDL. Est ce que je dois mettre des limites sur le rand() ? Si oui comment ?
Il y a t 'il autre chose que j'ai oublié ?

Merci d'avance

2 réponses

Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
Bonjour,
tu peux accéder à la documentation de la fonction rand ici :
http://www.linux-france.org/article/man-fr/man3/rand-3.html

rand renvoit un entier entre 0 et RAND_MAX, je ne sais pas quel est le contexte de ta fonction, mais comme expliqué dans l'exemple si tu désires un nombre entre 1 et 10 tu dois faire appel au modulo :

int hasard()
{
    return (1+(int) (10.0*rand()/(RAND_MAX+1.0)));
} 

0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
petite erreur de vocabulaire : il ne faut surtout pas faire appel au "modulo", comme préciser dans le man. L'erreur serait d'écrire rand()%9+1 (là c'est un modulo)
0
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
Pardon, c'est vrai je suis allé trop vite ^^.
Comme dit "Char Snipeur" il ne faut pas faire appel au modulo, mais plutôt utiliser la division.

Merci pour la correction !
0
lanaën Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup pour ces informations. Ma fonction rand fonctionne correctement maintenant
0