IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Problème de déplacement aléatoire d'un fantôme pour un Pacman


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut Problème de déplacement aléatoire d'un fantôme pour un Pacman
    Bonjour,

    Je suis en train de réaliser un Pacman et j'ai une difficulté au niveau des fantômes. Je le teste que sur un fantôme, mon fantôme part mais après il se bloque ne bouge plus. Voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
     #include "../includes.h"
    void ghost_random(Allvariable *pacman_game) {
        int random_ancien;
        int pacX = pacman_game->Personnage[0].positionMap.x;
        int pacY = pacman_game->Personnage[0].positionMap.y;
        int test = 20 ;
        int blinkyX = pacman_game->Personnage[1].positionMap.x;
        int blinkyY = pacman_game->Personnage[1].positionMap.y;
        int blinkyPos = pacman_game->TBmap[pacman_game->Personnage[1].positionMap.y][pacman_game->Personnage[1].positionMap.x];
        int nb_alea = 0;
     srand(time(NULL));
     
       /* Fantome va vers le haut et il peut continuer tout droit aller gauche ou droite*/
    if ( pacman_game->TBmap[blinkyY -1][blinkyX]==1 & pacman_game->TBmap[blinkyY][blinkyX +1]==1 & pacman_game->TBmap[blinkyY][blinkyX -1]==1 & pacman_game->Personnage[1].last_direction == 1  ){
     
        nb_alea = (rand() % 3) + 1;
        if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 1;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 3;}
            if (nb_alea==3){
            pacman_game->Personnage[1].prochaine_direction = 4;}
    }
     
     /* Fantome va vers le bas et il peut continuer tout droit aller gauche ou droite*/
    else if ( pacman_game->TBmap[blinkyY +1][blinkyX]==1 & pacman_game->TBmap[blinkyY][blinkyX +1]==1 & pacman_game->TBmap[blinkyY][blinkyX -1]==1 & pacman_game->Personnage[1].last_direction == 2  ){
     
        nb_alea = (rand() % 3) + 1;
        if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 2;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 3;}
            if (nb_alea==3){
            pacman_game->Personnage[1].prochaine_direction = 4;}
    }
     
     /* Fantome va vers la droite et il peut continuer tout droit aller haut ou bas*/
    else if ( pacman_game->TBmap[blinkyY +1][blinkyX]==1 & pacman_game->TBmap[blinkyY -1][blinkyX]==1 & pacman_game->TBmap[blinkyY][blinkyX +1]==1 & pacman_game->Personnage[1].last_direction == 4  ){
     
        nb_alea = (rand() % 3) + 1;
        if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 2;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 1;}
            if (nb_alea==3){
            pacman_game->Personnage[1].prochaine_direction = 4;}
    }
     
     /* Fantome va vers la gauche et il peut continuer tout droit aller  haut ou bas*/
    else if ( pacman_game->TBmap[blinkyY +1][blinkyX]==1 & pacman_game->TBmap[blinkyY -1][blinkyX]==1 & pacman_game->TBmap[blinkyY][blinkyX -1]==1 & pacman_game->Personnage[1].last_direction == 3  ){
     
        nb_alea = (rand() % 3) + 1;
        if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 2;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 1;}
            if (nb_alea==3){
            pacman_game->Personnage[1].prochaine_direction = 3;}
    }
     
     /* Fantome va vers la droite et il peut descendre*/
    else if ( pacman_game->TBmap[blinkyY +1][blinkyX]==1 & pacman_game->Personnage[1].last_direction == 4 ){
    pacman_game->Personnage[1].prochaine_direction = 2;}
     
     /* Fantome va vers le haut et il peut aller a gauche*/
    else if ( pacman_game->TBmap[blinkyY][blinkyX -1]==1 & pacman_game->Personnage[1].last_direction == 1 ){
    pacman_game->Personnage[1].prochaine_direction = 3;}
     
     /* Fantome va vers la droite et il peut monter*/
    else if ( pacman_game->TBmap[blinkyY -1][blinkyX]==1 & pacman_game->Personnage[1].last_direction == 4 ){
    pacman_game->Personnage[1].prochaine_direction = 1;
    }
     
     /* Fantome va vers le bas et il peut aller gauche*/
    else if ( pacman_game->TBmap[blinkyY][blinkyX -1]==1 & pacman_game->Personnage[1].last_direction == 2 ){
    pacman_game->Personnage[1].prochaine_direction = 3;}
     
     /* Fantome va vers la gauche et il peut monter*/
    else if ( pacman_game->TBmap[blinkyY -1][blinkyX]==1 & pacman_game->Personnage[1].last_direction == 3 ){
    pacman_game->Personnage[1].prochaine_direction = 1;}
     
     /* Fantome va vers le bas et il peut aller a droite*/
    else if ( pacman_game->TBmap[blinkyY][blinkyX +1]==1 & pacman_game->Personnage[1].last_direction == 2 ){
    pacman_game->Personnage[1].prochaine_direction = 4;}
     
     /* Fantome va vers le haut et il peut aller a droite*/
    else if ( pacman_game->TBmap[blinkyY][blinkyX +1]==1 & pacman_game->Personnage[1].last_direction == 1 ){
    pacman_game->Personnage[1].prochaine_direction = 4;}
     
     /* Fantome va vers la gauche et il peut descendre*/
    else if ( pacman_game->TBmap[blinkyY +1][blinkyX]==1 & pacman_game->Personnage[1].last_direction == 3 ){
    pacman_game->Personnage[1].prochaine_direction = 2;}
     
     /* Fantome va vers le haut et il peut continuer tout droit ou aller droite*/
    else if ( pacman_game->TBmap[blinkyY -1][blinkyX]==1 & pacman_game->TBmap[blinkyY][blinkyX +1]==1 & pacman_game->Personnage[1].last_direction == 1  ){
     
        nb_alea = (rand() % 2) + 1;
            if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 4;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 1;}
    }
     
     /* Fantome va vers le gauche et ill peut aller en haut ou en bas*/
    else if ( pacman_game->TBmap[blinkyY -1][blinkyX]==1 & pacman_game->TBmap[blinkyY +1][blinkyX]==1 & pacman_game->Personnage[1].last_direction == 3  ){
     
        nb_alea = (rand() % 2) + 1;
            if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 2;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 1;}
    }
     
     /* Fantome va vers le bas et il peut continuer tout droit ou aller a droite*/
    else if ( pacman_game->TBmap[blinkyY +1][blinkyX]==1 & pacman_game->TBmap[blinkyY][blinkyX +1]==1 & pacman_game->Personnage[1].last_direction == 2  ){
     
        nb_alea = (rand() % 2) + 1;
            if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 4;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 2;}
    }
     
     /* Fantome va vers le haut et ill peut continuer tout droit ou aller a gauche*/
    else if ( pacman_game->TBmap[blinkyY -1][blinkyX]==1 & pacman_game->TBmap[blinkyY][blinkyX -1]==1 & pacman_game->Personnage[1].last_direction == 1  ){
     
        nb_alea = (rand() % 2) + 1;
            if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 3;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 1;}
    }
     
     /* Fantome va vers la droite et il peut monter ou descendre*/
    else if ( pacman_game->TBmap[blinkyY -1][blinkyX]==1 & pacman_game->TBmap[blinkyY +1][blinkyX]==1 & pacman_game->Personnage[1].last_direction == 4  ){
     
        nb_alea = (rand() % 2) + 1;
            if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 2;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 1;}
    }
     
     /* Fantome va vers le bas et il peut continuer tout droit ou aller a gauche*/
    else if ( pacman_game->TBmap[blinkyY +1][blinkyX]==1 & pacman_game->TBmap[blinkyY][blinkyX -1]==1 & pacman_game->Personnage[1].last_direction == 2  ){
     
        nb_alea = (rand() % 2) + 1;
            if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 3;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 2;}
    }
     
     
    /*if ( pacman_game->TBmap[blinkyY -1][blinkyX]==1 & pacman_game->Personnage[1].last_direction == 1 ){
    pacman_game->Personnage[1].prochaine_direction = 1;}
     
    if ( pacman_game->TBmap[blinkyY +1][blinkyX]==1 & pacman_game->Personnage[1].last_direction == 2 ){
    pacman_game->Personnage[1].prochaine_direction = 2;}*/
     
     
     /*Fantome va vers la gauche et il peut continuer tout droit ou aller en bas*/
    else if ( pacman_game->TBmap[blinkyY +1][blinkyX]==1 & pacman_game->TBmap[blinkyY][blinkyX -1]==1 & pacman_game->Personnage[1].last_direction == 3  ){
     
        nb_alea = (rand() % 2) + 1;
            if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 3;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 2;}
    }
     
     /* Fantome va vers le haut et il peut aller a gauche ou a droite*/
    else if ( pacman_game->TBmap[blinkyY][blinkyX -1]==1 & pacman_game->TBmap[blinkyY][blinkyX +1]==1 & pacman_game->Personnage[1].last_direction == 1  ){
     
        nb_alea = (rand() % 2) + 1;
            if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 3;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 4;}
    }
     
     /* Fantome va vers la droite et il peut continuer tout droit ou descendre*/
    else if ( pacman_game->TBmap[blinkyY +1][blinkyX]==1 & pacman_game->TBmap[blinkyY][blinkyX +1]==1 & pacman_game->Personnage[1].last_direction == 4  ){
     
        nb_alea = (rand() % 2) + 1;
            if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 4;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 2;}
    }
     
     /* Fantome va vers la gauche et il peut continuer tout droit ou monter*/
    else if ( pacman_game->TBmap[blinkyY -1][blinkyX]==1 & pacman_game->TBmap[blinkyY][blinkyX -1]==1 & pacman_game->Personnage[1].last_direction == 3  ){
     
        nb_alea = (rand() % 2) + 1;
            if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 3;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 1;}
    }
     
     /* Fantome va vers la droite et il peut continuer tout droit ou monter*/
    else if ( pacman_game->TBmap[blinkyY -1][blinkyX]==1 & pacman_game->TBmap[blinkyY][blinkyX +1]==1 & pacman_game->Personnage[1].last_direction == 4  ){
     
        nb_alea = (rand() % 2) + 1;
            if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 4;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 1;}
    }
     
     /*Fantome va vers le bas et il peut aller gauche ou droite*/
    else if ( pacman_game->TBmap[blinkyY][blinkyX -1]==1 & pacman_game->TBmap[blinkyY][blinkyX +1]==1 & pacman_game->Personnage[1].last_direction == 2  ){
     
        nb_alea = (rand() % 2) + 1;
            if (nb_alea==1){
            pacman_game->Personnage[1].prochaine_direction = 4;}
            if (nb_alea==2){
            pacman_game->Personnage[1].prochaine_direction = 3;}
     
    }
      }

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Déjà, tu ne devrais pas appeler srand() dans cette fonction, mais seulement une fois, au début du main.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 62
    Par défaut
    Bonjour,
    J'ai parcourus rapidement ton code et il me semble que tu ne gères pas le problème des impasses. Le fantôme avance, avance puis arrive à un cul de sac. Il va dans une direction, mais ne peut plus continuer, il ne peut pas non plus tourner à gauche ou à droite. Tu ne lui laisses pas la possibilité de se retourner donc aucune des conditions que tu as écrit ne peut être validée : il ne fait rien.

    Outre ce bug j'ai des remarques à te suggérer sur ton code.


    • Clarifier les directions :

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
       pacman_game->Personnage[1].prochaine_direction = 1;
      Personnellement la direction 1 ça me parle pas trop. Il pourrait être intéressant d'utiliser des constantes qui rendent les choses plus explicites :
      avec le préprocesseur :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
       #define HAUT 1
      pacman_game->Personnage[1].prochaine_direction = HAUT;
      avec des constantes:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
       static const char cHaut = 1;
      pacman_game->Personnage[1].prochaine_direction = cHaut;
      ou encore mieux une énumération puisque tu as plusieurs directions :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
       typedef enum {
         cHaut;
         cDroite;
         //...
      } eDirection;
      pacman_game->Personnage[1].prochaine_direction = cHaut;
    • Des conditions ou des masques!!

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if ( pacman_game->TBmap[blinkyY -1][blinkyX]==1 & pacman_game->TBmap[blinkyY][blinkyX +1]==1 & pacman_game->TBmap[blinkyY][blinkyX -1]==1 & pacman_game->Personnage[1].last_direction == 1  ){
      En soit ton code et juste et fonctionne. Néanmoins, il pourrait être plus rapide et plus claire. & est l'opérateur binaire et && est l'opérateur logique. Ta variable doit prendre comme valeur 0 ou 1 donc dans ce cas ils sont interchangeables mais tu mélanges deux raisonnements: celui par masque et celui par logique. Soit tu considères le raisonnement par masque alors tu ne précises pas les == 1 intermédiaires; ta condition évalue le résultat d'une opération binaire sur un ensemble de variable :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if ( pacman_game->TBmap[blinkyY -1][blinkyX] & pacman_game->TBmap[blinkyY][blinkyX +1] & pacman_game->TBmap[blinkyY][blinkyX -1] & pacman_game->Personnage[1].last_direction == 1  ){
      Soit tu considères le raisonnement par la logique alors tu utilises les opérateurs logique sans test à la fin : ta condition évalue la conjonction d'un ensemble de prédicats :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if ( pacman_game->TBmap[blinkyY -1][blinkyX] == 1 && pacman_game->TBmap[blinkyY][blinkyX +1]  == 1 && pacman_game->TBmap[blinkyY][blinkyX -1] == 1 && pacman_game->Personnage[1].last_direction){
      La différence peut paraître subtile si tu commences la programmation mais il est important de savoir quel concept tu manipules.
      Enfin un petit détail d'optimisation : Toutes tes conditions ont un élément principale, c'est la direction précédente du fantôme. Si il va vers le haut, il est inutile de savoir si la case en dessous de lui est libre! Hors tu tests la direction du fantôme en dernier. Si tu utilises un && et que le premier prédicats est faux alors faux && nawak => faux qu'importe la valeur de nawak. Le compilateur le sait et ne poursuit pas le test si un prédicat est faux. Il serait donc plus intéressant de tester la direction en premier:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if (pacman_game->Personnage[1].last_direction && pacman_game->TBmap[blinkyY -1][blinkyX] == 1 && pacman_game->TBmap[blinkyY][blinkyX +1]  == 1 && pacman_game->TBmap[blinkyY][blinkyX -1] == 1){
      Si ce n'est pas la bonne direction tu évites trois tests.
    • Explosion combinatoire!!!!

      C'est le problème MAJEUR de ton code : Il y a une tonne de condition. Tu regardes tous les cas possible et c'est monstrueux et pourtant il n'y a que 4 directions possibles. Et dans chaque condition tu fais en gros toujours la même chose.
      La question à se poser c'est que veux tu faire ?
      Tu veux choisir aléatoirement une direction parmi celles qui sont disponibles.
      Donc ce qu'il te faut c'est la liste des directions disponibles et il y en a jamais plus de 4 :o
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
       eDirection directionsDisponibles[4];
      Petite astuce (a tester en C89) quand tu as des énumérations :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
       typedef enum {
         cHaut = 0;
         cDroite;
         //...
         // La dernière valeur c'est aussi la taille
         cDirectionTaille;
      } eDirection;
       
      eDirection directionsDisponibles[cDirectionTaille];
      Ici Imaginons qu'il te prend de le faire en 3D ou en 42D, tu n'as rien à changer à ta déclaration.

      Quand une direction est disponible tu l'enregistres dans ton tableau et tu utilises un compteur pour savoir combien tu en as. Si tu ne veux pas d'une direction tu peux faire un test avant de l'enregistrer.
      Après il te suffit de choisir aléatoirement et ton compteur va t'aider .
      Comme tu utilises un tableau le nombre obtenu te permet d'avoir directement la direction sans test supplémentaire.


    Voilà tu as déjà pas mal d'éléments pour nous faire une solution en moins de 50 lignes :o

    Bon courage!!

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut Réponse
    Merci beaucoup pour vos réponse, elles me sont d'une grande utilité, mais dans mon Pacman, le fantôme ne doit jamais revenir en arrière c'est justement la que se trouve la difficulté c'est donc pour sa que je fais tous ces tests. Je cherche a dire en gros que des qu'il arrive a une intersection il choisisse les directions disponible sauf celle d’où il vient...

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    En effet, les impasses ne sont pas censées exister sur le terrain de Pac-Man de toute façon, donc le problème n'est pas censé se poser.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut
    Oui je suis d'accord avec vous mais avec ceux que ma dit schonai, il y a un problème, il dit que j'ai 4 possibilité alors que j'en ai que 3 vue que j'en élimine qu’un a chaque fois, et il ma dit a un moment qu'il puisse se retourné sauf que c'est pas possible Donc voila

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/04/2011, 15h04
  2. problème de requête SQL sur 3 tables pour un while
    Par carmen256 dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/04/2006, 16h55
  3. Réponses: 2
    Dernier message: 09/02/2006, 16h17
  4. [FLASH 8] Déplacement aléatoire d'un MovieClip
    Par vieuxshish dans le forum Flash
    Réponses: 3
    Dernier message: 23/12/2005, 14h54
  5. Réponses: 3
    Dernier message: 08/12/2004, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo