Partage
  • Partager sur Facebook
  • Partager sur Twitter

Choisir un emplacement aléatoirement dans la carte

ma méthode est trop lente

Anonyme
    26 mai 2006 à 0:26:19

    Bonjour. pour mon programme, il est nécessaire de choisir un emplacement aléatoire dans mon tableau pour placer une pomme sur la carte.

    Ce que je fait actuellement :
    Je parcours le tableau pour voir si une pomme déja placé. Si ca n'est pas le cas, je choisit une abscisse et une ordonnée, puis je boucle pour vérifier si c'est bien une case vide.

    Voila ce que ca donne :
    //on vérifie si une pomme est pas déja placé
    for (i = 0; i < NOMBRE_BLOCS_HAUTEUR; i++) {
        for (j = 0; j < NOMBRE_BLOCS_LARGEUR; j++) {
            if (carte[i][j] == POMME) {
                pommePlace = 1;
            }
        }
    }

    if (pommePlace == 0) { //on place une pomme au hazard
        do {
            srand(time(NULL));
            positionPomme.x = (rand() % (ABSCISSE_MAX - ABSCISSE_MIN + 1)) + ABSCISSE_MIN;
            positionPomme.y = (rand() % (ORDONNE_MAX - ORDONNE_MIN + 1)) + ORDONNE_MIN;

        } while(carte[positionPomme.x][positionPomme.y] != VIDE);

        carte[positionPomme.x][positionPomme.y] = POMME;
    }


    Le problème de lenteur se fait sentir lorsque la carte est très chargée. La boucle devient longue et le jeu est coupé le temps que la boucle se termine.

    Avez vous une idée d'un autre système plus rapide ?
    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      26 mai 2006 à 0:29:31

      Au tient un srand placé n'importe où.... étonnant.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        26 mai 2006 à 0:31:25

        ah oui comme tu dis ! meme pas vu, fo que j'aille pioncer !
        • Partager sur Facebook
        • Partager sur Twitter

        Choisir un emplacement aléatoirement dans la carte

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown