(c) trouve pas mes erreurs

Fermé
erreur? - 5 févr. 2008 à 13:13
41 Messages postés 51 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 9 février 2008 - 6 févr. 2008 à 17:19
Bonjour,

je n'arrive pas à trouver mes erreurs dans mon code! pouvez -vous m'aider??
[ en c jeu puissance 4]

merci

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

char *creer_grille(int,int);
void afficher_grille(char *,int,int);
int verifgrille(char *p4,int colonnes,int lignes,char *joueuractuel);


int main (void) {
   
   char joueur,joueur2;
   char *joueuractuel=NULL; /* Pointeur joueuractuel vers joueur */
   int choix,nmbrerandom,JEU=1,CHOIXVALIDE=1;  /* nmbrerandom pour la fonction random */
   int colonnes,lignes=6;
   char *p4=NULL;

     /* Menu du jeu */

   while(CHOIXVALIDE) { /* Operateur logique boolen, tant que choixvalide != 0, on relance le menu */
   printf("\nSelectionnez le type de partie souhait\n\n");
   printf("-> Humain vs Humain : 1\n");
   printf("-> Humain vs CPU : 2\n");
   printf("-> CPU vs CPU : 3\n\n");
   
   printf("Votre choix : "); 
   scanf("%d",&choix);
   
   
   switch(choix) {
      case 1:
         joueur='O',joueur2='X',CHOIXVALIDE=0;
         break;
      case 2:
         joueur='O',joueur2='S',CHOIXVALIDE=0;
         break;
      case 3:
         joueur='S',joueur2='T',CHOIXVALIDE=0;
         break;
      default:
         break; } }
         
   /* Fin Menu du jeu */
 
   /* Creer la grille */
   
    printf("\nNombre de colonnes :  ");
   scanf("%d",&colonnes);
   
   p4=creer_grille(colonnes,lignes);

   /* fin de creer la grille */


 /* random qui renvoie 0 ou 1 et determine le joueur qui commence */

   srand(time(NULL));    /* On initialise le gnrateur de nombre alatoires */
   nmbrerandom=(rand() % 2);
   if(nmbrerandom==0) 
      joueuractuel=&joueur;
   joueuractuel=&joueur2;
   
   

   /* fin random */

   /* Debut de la boucle */

   while(JEU) {  /* Operateur logique JEU , tant que JEU != 0 (que personne n'a gagn) on continue le jeu */
   
     
      afficher_grille(p4,colonnes,lignes); /* Affichage de la grille */
     
      int i,j;

     
      /* test */
      *p4='O';
      afficher_grille(p4,colonnes,lignes);
   
      /*fin test */
     
      int condition= verifgrille(p4,colonnes,lignes,joueuractuel); /* test si qqn a gagn */
      
	  if(condition == 1) 
		  printf("gagne");
      printf("perdu\n"); 
   
 
 
 return 0; } }


/* Debut des fonctions */

/* Fonction crer grille */

char *creer_grille(int col,int lignes) {
   
   int i,j;
   
   char *p4=malloc(lignes*sizeof(*p4));
   if(p4==NULL) exit(0);
   
   for(i=0;i<lignes;i++)
      p4=malloc(col*sizeof(*p4));
   
     for(i=0;i<lignes;i++)
      for(j=0;j<col;j++)
         *p4=' ';

return p4; }

/* Fonction Afficher grille */

void afficher_grille(char *p4,int colonnes,int lignes) {
   
   int i,j;
   
   for(i=0;i<lignes;i++) {
      printf("\n");
      for(j=0;j<colonnes;j++)
         printf("| %c ",*p4); }
   printf("\n");
   for(i=0;i<colonnes;i++)
      printf("%d ",i);
   printf("\n\n"); }

/* Fonction Verifier Grille */

int verifgrille(char *p4,int colonnes,int lignes,char *joueuractuel) {


   /* verif horizontale */

int compteur=0;
 int i,j,condition;

 for(i=(lignes-1);i>=0;i--) {
    if(compteur==4) {
       printf("Celui qui a les pions %c a gagn\n",*joueuractuel);
       return 1; }
    else  compteur=0;
    for(j=0;j<colonnes;j++) {
       if(compteur==4) {
          printf("Celui qui a les pions %c a gagn\n",*joueuractuel);
         return 1; }
       if(*p4 != *joueuractuel) compteur=0;
       else  compteur++; } }

/* verif verticale */
 
 compteur=0;
 
 for(j=0;j<colonnes;j++) {
    if(compteur==4) {
  return 1; }
    else compteur=0;
    for(i=(lignes-1);i>=0;i--) {
       if(compteur==4) {
          printf("Vous avez gagn\n");
          return 1; }
       if(*p4 != *joueuractuel) compteur=0;
       else compteur++; } }

 
return 0;
}
 

/* Fin des fonctions */

4 réponses

tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120
5 févr. 2008 à 13:19
C'est trop long, j'arrive pas à suivre! est ce que vous avez des erreurs pendant la compilation ou pendant l'execution.
0
il y en a 3 les voici:

C:\Program Files\Microsoft Visual Studio\MyProjects\44\p4.c(74) : error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio\MyProjects\44\p4.c(83) : error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio\MyProjects\44\p4.c(85) : error C2065: 'condition' : undeclared identifier
Error executing cl.exe.
0
salut

on ne peut vraiment pas m'aider??

merci
0
41 Messages postés 51 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 9 février 2008 28
6 févr. 2008 à 17:19
Pour la ligne 85, essaye :

if(condition == 1)
{
printf("gagne");
}
else
{
printf("perdu\n");
}


Pour les 2 autres, essaye de déclarer tes variables indépendamment avant de les utiliser, je sais pas si ça changera quelque chose, auquel cas cherche des erreurs de syntaxe, de ";" particulièrement, mais j'en vois aucune moi.
0