#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