Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Snake] Gestion des coordonnées

Bugs

Sujet résolu
    13 novembre 2007 à 19:52:26

    Bonjour

    Je rencontre quelques problèmes avec un fonction qui est censée générer des coordonnées aléatoires pour placer une pomme sur l'écran.

    Le problème est que l'abscisse est toujours égale à l'ordonnée pour chaque pomme, ce qui fait que celles-ci n'apparaissent que sur une diagonale.
    De plus, j'ai inclu un système de vérification de coordonnée pour ne pas que la pomme se blitte sur le serpent, mais il ne fonctionne pas.

    Voici ma fonction de coordonnée:
    1. int select_coord(int min, int max){
    2.     const long MIN = min, MAX = max;
    3.     int coordonee = 0;
    4.     srand(time(NULL));
    5.     coordonee = (rand() % (MAX - MIN + 1)) + MIN;
    6.     return coordonee;
    7. }
    8. int coord(SDL_Rect *position, int taille){
    9.     int valeur = select_coord(1, (NB_BLOCS_L - 2));
    10.     bool coord_ok = false;
    11.     for(int i = taille; i > 0; i--){
    12.         while(!coord_ok){
    13.             if(position[i].x == valeur || position[i].y == valeur){
    14.                 valeur = select_coord(1, (NB_BLOCS_L - 2));
    15.             }
    16.             else{
    17.                 coord_ok = true;
    18.             }
    19.         }
    20.     }
    21.     return valeur;
    22. }


    Dans le main, la fonction est appellée de cette manière:
    1. pos_pomme.x = coord(pos_snake, longueur_snake);
    2. pos_pomme.y = coord(pos_snake, longueur_snake);


    Où est l'erreur?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
    Un traitement de texte léger, rapide et fiable : DadaWord (ou sur GitHub)
      13 novembre 2007 à 20:03:38

      - un seul appelle à 'srand()' !!!
      - pour ton code j'ai pas trop regarder, mais moi je passerai par une classe 'Carte' avecune methode 'GenerateAleaApple()'
      • Partager sur Facebook
      • Partager sur Twitter

      [Snake] Gestion des coordonnées

      × 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