Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Il y a 42 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Problème compilation puissance 4 en C

 
n°19267
Moondir77
Profil : Jeune recrue
Posté le 01-05-2008 à 14:25:07  profilanswer
 

Bonjour à tous!
 
Tout d'abord merci d'avance a tous de prêter attention a mon problème.
 
J'ai réalisé un puissance 4 en C pour mon projet de fin d'année a la fac, mais j'ai un petit problème que je n'arrive pas a résoudre...
A chaque tentative de compilation, ce message apparait:" line 180, parse error at the end of input ".
 
Voici mon programme:
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define LIGNE 7
  4. #define COLONNE 8
  5. char grille[LIGNE][COLONNE];
  6. char X='X';
  7. char O='O';
  8. char j1[20];
  9. char j2[20];
  10. int resultat;
  11. void menu(){
  12. printf("\n*******************************************************\n" );
  13. printf("**********                                   **********\n" );
  14. printf("***                                                 ***\n" );
  15. printf("*                     PUISSANCE 4                     *\n" );
  16. printf("*                   Fayçal et Mounir                  *\n" );
  17. printf("***                                                 ***\n" );
  18. printf("**********                                   **********\n" );
  19. printf("*******************************************************\n" );
  20. printf("Nom du Joueur1?" );
  21. scanf("%s", &j1);
  22. printf("Nom du Joueur2?" );
  23. scanf("%s",&j2);
  24. }
  25. void affichagegrille(){
  26. int i,j;
  27. for(i=0; i<LIGNE; i++){
  28.  for(j=1; j<COLONNE; j++){
  29.   printf("%c|", grille[i][j]);
  30.  }
  31. printf("\n" );
  32. }
  33. }
  34. void remplissage(){
  35. int i,j;
  36. for(i=1; i<LIGNE; i++){
  37.  for(j=1; j<COLONNE; j++){
  38.    grille[i][j]=' ';
  39.  }
  40. }
  41. for(i=0; i<LIGNE; i++){
  42.  grille[0][i]=i;
  43. }
  44. for(j=1; j<COLONNE; j++){
  45.  grille[j][0]=j;
  46. }
  47. }
  48. void coup(char joueur[20], char grille[LIGNE][COLONNE]){
  49. int abscice,i,resultat;
  50. printf("A %s de jouer! Entrez les coordonnees: ", joueur);
  51. printf("\nChoisissez une colonne! => " );
  52. scanf("%d", &abscice);
  53. while((abscice>7) || (abscice<1)){
  54.   printf("Entrez une colonne correct!\n" );
  55.   scanf("%d", &abscice);
  56. }
  57. for(i=1; i<=6; i++){
  58.  if(grille[i][abscice]==' '){
  59.   if(joueur==j1){
  60.    grille[i][abscice]=X;
  61.   }
  62.   else{
  63.    grille[i][abscice]=O;
  64.   }
  65. }
  66. }
  67. int verification(char grille[LIGNE][COLONNE]){
  68. int j,k;
  69. for(k=1; k<=LIGNE; k++){
  70.  for(j=1; j<=COLONNE; j++){
  71.   if(k<=(COLONNE-3)){
  72.    if((grille[k][j]==grille[k][j+1]==grille[k][j+2]==grille[k][j+3]==X) || (grille[k][j]==grille[k][j+1]==grille[k][j+2]==grille[k][j+3]==O)){
  73.                     return 1;
  74.    }
  75.   }
  76.   else if(j<=(LIGNE-3)){
  77.    if((grille[k][j]==grille[k+1][j]==grille[k+2][j]==grille[k+3][j]==X) || (grille[k][j]==grille[k+1][j]==grille[k+2][j]==grille[k+3][j]==O)){
  78.                     return 1;
  79.                 }
  80.   }
  81.   else if((k<=(COLONNE-3)) && (j<=(LIGNE-3))){
  82.    if((grille[k][j]==grille[k+1][j+1]==grille[k+2][j+2]==grille[k+3][j+3]==X) || (grille[k][j]==grille[k+1][j+1]==grille[k+2][j+2]==grille[k+3][j+3]==O)){
  83.                     return 1;
  84.    }
  85.   }
  86.   else if((k>=4) && (j>=4)){
  87.    if((grille[k][j]==grille[k+1][j-1]==grille[k+2][j-2]==grille[k+3][j-3]==X) || (grille[k][j]==grille[k+1][j-1]==grille[k+2][j-2]==grille[k+3][j-3]==O)){
  88.                     return 1;
  89.    }
  90.   }
  91.   else{
  92.    return 2;
  93.   }
  94.  }
  95. }
  96. }
  97. int main(){
  98. int compteur=0;
  99. menu();
  100. printf("Que la partie commence!\n\n\n\n" );
  101. remplissage();
  102. affichagegrille();
  103. do{
  104.  coup(j1,grille);
  105.  affichagegrille();
  106.  compteur++;
  107.  if(compteur>7){
  108.   resultat=verification(grille);
  109.   if(resultat==1){
  110.    printf("Bien joue %s! Vous remportez la partie!",j1);
  111.    compteur=43;
  112.   }
  113.  }
  114.  if(resultat==2){
  115.   coup(j2,grille);
  116.   affichagegrille(grille);
  117.   compteur++;
  118.   if(compteur>8){
  119.    resultat=verification(grille);
  120.    if(resultat==1){
  121.     printf("Bien joue %s! Vous remportez la partie!" );
  122.     compteur=43;
  123.    }
  124.   }
  125.  }
  126. }
  127. while((resultat==2) && (compteur<43));
  128. if(compteur==42){
  129.  printf("Match Nul!" );
  130. }
  131. return 0;
  132. }


 
Donc voila si une âme généreuse m'aiderait, ça serait gentil ^^
 
Encore merci!  

n°19269
cmoila
Profil : Membre
Posté le 02-05-2008 à 16:58:08  profilanswer
 

Le "parser" est l'analyseur syntaxique du compilo. Une erreur du parser c'est classiquement un signe de ponctuation qui manque ou est de trop.
 
"line 180, parse error at the end of input " veut dire que le compilo s'est perdu dans ta syntaxe et a été jusqu'au bout du prog pour rechercher une solution qu'il n'a jamais trouvé. IL génère donc l'erreur à la fin, mais le pb est avant bien sûr.
 
Tu as choisi de mettre seulement 1 caractère d'indentation pour les boucle et condition, et 0 pour les fonctions. Mets 2 pour les fonctions et ensuite 4 caractères blancs d'indentation , ca rendra la structure de ton prog bien plus lisible pour un débutant. Comme par exemple le "if" de la ligne 88.
 


Aller à :
Ajouter une réponse