Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/05/2011, à 12:04

tim91700

[C] Probleme concernant l'utilisation de structures

Bonjour,

Pour un jeu de Traverse, il faut deux jouers et deux coordonés, qui sont représentés par 2 structures :

 
typedef struct coord{
  char lettre;
  int numLigne;
  int numColonne;
}coord;

typedef struct pion{
  char* nom;//   
  int forme;//compris entre 0 et 4, soit carré etc
  int numero;// soit 1 soit 2 soit 0
  int joueur;
}pion;

Pour saisir le pion à deplacer et sa destination, j'ai crée une fonction saisie. Après ca, je verifie si oui ou non, le deplacement souhaité est valide. Voila la fonction qui me pose probleme :

coord selection(coord coordPion)
{
   int correcte;
  correcte = 0;
  while (correcte == 0){
      correcte = 1;
       printf("Entrez la lettre de la colonne: ");
       scanf("%c", &coordPion.lettre);
       viderBuffer();
           if(coordPion.lettre < 97 || coordPion.lettre > 106)
         {
           printf("\tCette saisie est mauvaise\n");
           correcte = 0;
         }
  }//fin du while


  correcte = 0;
   while (correcte == 0)
    {
       correcte = 1;
       printf("Entrez le numéro de la ligne : ");
       scanf("%d", &coordPion.numLigne );
       viderBuffer();
       if(coordPion.numLigne < 1 || coordPion.numLigne > 10)
     {
       correcte = 0;
       printf("\tCette saisie est mauvaise\nn");
     }
    }//fin du while
   coordPion.numLigne = coordPion.numLigne - 1;
   coordPion.numColonne = coordPion.lettre - 97;
   printf("\n\n");
   
   return coordPion;
 }

void viderBuffer(void)
{
    int c = 0;
    
    while (c != '\n' && c != EOF)
        c = getchar();
}

void deplacementTotal2(pion** plateau)
{
  int deplacementPossible;
  coord coordPion;
  pion pion;
  int existence;
  coord coordDeplacement;
  pion deplacement2;
  deplacementPossible = 0;
  existence = 0;
  while (existence == 0)
    {
      printf("\tSelectionnez le pion que vous voulez deplacer\n\n");
      coordPion = selection(coordPion);  
      //demande à l'utilisateur d'entrez les valeures des coordonnées du piont qui doit être déplacer
    existence = afficheNomPion(plateau[coordPion.numColonne][coordPion.numLigne]);//a = 97
    }

  pion = plateau[coordPion.numColonne][coordPion.numLigne];
  //while (deplacementPossible == 0)
  //{
    printf("\tEcrivez les coordonnées de votre choix de déplacement\n");
    coordDeplacement = selection(coordDeplacement);
    deplacement2 = plateau[coordDeplacement.numColonne][coordDeplacement.numLigne];
    afficheNomPion(deplacement2);
    verifDeplacementPossible(coordPion, coordDeplacement, pion, deplacement2);
    afficherTab(plateau);
  //}
}

Dans deplacementTotal2, j'arrives à utiliser "pion pion" et à lui entrer, les x et y de la 'source'. Je souhaites declarer 'pion deplacement2' pour lui entrer les x et y de la destination, mais lors de la compilation, j'ai des erreurs au niveau de :
-La ligne de declaration => pion deplacement2;  'Statement with no effect', 'expected ';' before 'deplacement2'
-La 1er ligne d'utilisation => deplacement2 = plateau[coordDeplacement.numColonne][coordDeplacement.numLigne];
'deplacement2' is undeclareadn, first use in function.

Il y a t-il une solution pour que mon 'deplacement2' marche ?

Merci d'avance pour votre réponse

Hors ligne

#2 Le 22/05/2011, à 11:00

no_spleen

Re : [C] Probleme concernant l'utilisation de structures

Juste une idée,

la déclaration

pion pion;

est-elle valide ? Car du coup tu te retrouve avec une variable qui a le même nom qu'une structure. Peut-être qu'alors quand tu fais

pion deplacement2;

le compilateur interprète cela comme étant deux objets, et te dit que la déclaration n'est pas valide.

Hors ligne