Valeurs aléatoires dans un tableau C++

Fermé
0nn2belle - 9 févr. 2010 à 10:21
 0nn2belle - 9 févr. 2010 à 10:29
Bonjour tout le monde,
Voilà, je suis en ce moment en projet où je dois créer un pacman.
Pour l'instant je veux pouvoir afficher aléatoirement 2 fruits lors d'une partie (un niveau).
Voici ce que je veux pouvoir faire :
- Je tire un chiffre au hasard (entre 0 et 20)
- Ce chiffre sera le nombre de secondes au bout duquel mon fruit apparaîtra
- Le fruit doit apparaître pendant un temps donné
- J'ai 2 fruits par niveau

Voici mon code pour le moment :
#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;
int rdtsc()
{
    __asm__ __volatile__("rdtsc"); //Permet d'obtenir le nombre de cycles utilisés par le processeur depuis le démarrage du programme
}

int main()
{
    srand(rdtsc());
    int nb_un =  rand()%20;
    srand(rdtsc());
    int nb_deux = (rand()%20)+20;
    cout << nb_un << endl << nb_deux;

    //int i; //Je déclare ma variable i
    //for(i=0; i<2; i++)//Pour i allant de 0 à 2 en décroissant
    //    {
    //        srand(rdtsc());//Amorçage de rand()
    //        cout <<<< endl;//Affiche 2 chiffres aléatoires compris entre 0 et 20
    //    }

    return 0;
}


Le truc c'est que je préfèrerai utiliser mon code en commentaire (la boucle for) afin que le jeu soit plus évolutif (par exemple je veux qu'il y ait 5 fruits par niveau au lieu de 2). Là où je suis bloquée c'est :
- Comment faire en sorte que mon 2ème fruit apparaisse au bout d'un temps +20secondes de la première apparition du fruit ?
- Comment récupérer mes valeurs aléatoires dans ma boucle fort afin de pouvoir les stocker ?
- Comment je peux afficher mon fruit au bout du temps de cette valeur aléatoire ?

1 réponse

Petite modification, le code de la boucle for est :
int i; //Je déclare ma variable i
    for(i=0; i<2; i++)//Pour i allant de 0 à 2 en décroissant
        {
            srand(rdtsc());//Amorçage de rand()
            cout << (rand()%20) << endl;//Affiche 2 chiffres aléatoires compris entre 0 et 20
        }
0