Morpion en langage C
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Morpion en langage C



  1. #1
    inviteda8b5dd6

    Morpion en langage C


    ------

    Bonjour
    je suis étudiante en L2 génie électrique et j'ai un projet à rendre dans 2 jours dans lequel je dois écrire l'algo et le code source du jeu le morpion.
    Mon code source à des problème j arrive pas à le faire fonctionner jusqu'au bout et aussi je n'arrive qu'à faire jouer qu'un joueur jarrive pas pour le deuxième.
    Vraiment besoin d'aide urgente.
    Merci


    Code:
    #include <stdio.h>
    
    // Signes pour les deux joueurs
    const char signe1='*';
    const char signe2='o';
    
    void initialisationgrille(char grille[3][3])
    {
    	int i; // Ligne
    	int j; // Colonne
    	for(i=0;i<3;i++)
    	{
    		for(j=0;j<3;j++)
    		{
    			grille[i][j]=' ';
    		}
    	}
    }
    
    void affichergrille(char grille[3][3])
    {
    	int i; // Ligne
    	int j; // Colonne
    	printf("-------------\n");
    	for(i=0;i<3;i++)
    	{
    	    printf("|");
    	    for(j=0;j<3;j++)
    	    {
    		printf(" %c |",grille[i][j]);
    	    }
    	    printf("\n");
    	}
    	printf("-------------\n");
     }
    
    int remplirgrille(char grille[3][3],char signe)
    // Renvoie 0 si la grille n a pas ete remplie
    // Renvoie 1 si la grille a ete correctement remplie
    {
        int ligne;
        int colonne;
        int reponse=0;
        printf("veuillez entrer la ligne: \n");
        scanf("%d",&ligne);
        printf("veuillez entrer la colonne: \n");
        scanf("%d",&colonne);
        do
        {
    
        if((ligne>0 && ligne<=3)&&(colonne>0 && colonne<=3))
        {
            if(grille[ligne-1][colonne-1]!=' ')
            {
                printf("déjà rempli \n");
            }
            else
           {
                grille[ligne-1][colonne-1]=signe;
                reponse=1;
           }
        }
        else
        {
            printf("coordonnées pas correct \n");
        }
        }while(reponse!=0);
        return(reponse);
    }
    
    char testgagnant(char grille[3][3])
    //Renvoie ' ' si pas de gagnant
    //Renvoie le signe du gagnant sinon
    {
        char reponse=' ';
        if((grille[0][0]==grille[1][1])&&(grille[1][1]==grille[2][2]))
        {
            reponse=grille[0][0];
        }
        else
        {
            if((grille[0][0]==grille[0][1])&&(grille[0][1]==grille[0][2]))
            {
                reponse=grille[0][0];
            }
            else
            {
                if((grille[1][0]==grille[1][1])&&(grille[1][1]==grille[1][2]))
                {
                    reponse=grille[1][0];
                }
                else
                {
                    if((grille[2][0]==grille[2][1])&&(grille[2][1]==grille[2][2]))
                    {
                        reponse=grille[2][0];
                    }
                    else
                    {
                        if((grille[0][0]==grille[1][0])&&(grille[1][0]==grille[2][0]))
                        {
                            reponse=grille[0][0];
                        }
                        else
                        {
                            if((grille[0][1]==grille[1][1])&&(grille[1][1]==grille[2][1]))
                            {
                                reponse=grille[0][1];
                            }
                            else
                            {
                                if((grille[0][2]==grille[1][2])&&(grille[1][2]==grille[2][2]))
                                {
                                    reponse=grille[0][0];
                                }
                                else
                                {
                                    if((grille[0][2]==grille[1][1])&&(grille[1][1]==grille[2][0]))
                                    {
                                        reponse=grille[0][2];
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        return(reponse);
    }
    
    
    
    
    
    
    int main()
    {
    	char grille1[3][3];
        char signe[2];
        char joueur1[20] ;
        char joueur2[20] ;
        int reponse1 ;
    	initialisationgrille(grille1);
    	affichergrille(grille1);
    	printf("Joueur 1 : Entrez votre prenom \n");
    	scanf("%s",&joueur1);
    	while(getchar()!='\n') ;
    	printf("Joueur 2 : Entrez votre prenom \n");
    	scanf("%s",&joueur2);
    	while(getchar()!='\n') ;
    	// On recupere les signes de deux joueurs
    	do
    	{
    		printf("vous avez le choix entre 2 signes: \n");
    		printf("signe1='*' et signe2='o'\n");
    		printf("entrez votre choix Joueur 1 \n");
    		scanf("%c",&signe[0]);
    		while(getchar()!='\n') ;
    		if( signe[0] == signe2 )
    		{
    			signe[1]=signe1;
    		}
    		else
    		{
    			signe[1]=signe2;
    		}
    	}
    	while ( (signe[0]!='*') && (signe[0]!='o') );
    	printf("Nom Joueur 1 : %s et Signe : %c \n ", joueur1, signe[0] ) ;
    	printf("Nom Joueur 2 : %s et Signe : %c \n ", joueur2, signe[1] ) ;
    
        affichergrille(grille1);
        reponse1 = remplirgrille(grille1,signe[0]);
        testgagnant(grille1);
        Fin_partie(grille1);
    
    	return 0 ;
    }
    
    int Fin_partie(char grille[3][3])
    // Renvoie 1 si la grille est completement remplie
    // Renvoie 0 sinon
    {
        int i;
        int j ;
        int reponse = 0 ;
        do
        {
            for (i=0;i<3;i++)
            {
               for(j=0;j<3;j++)
              {
                if(grille[i][j]==' ')
                {
                    return(reponse) ;
                }
              }
            }
        reponse = 1 ;
        }while(reponse==0 && reponse==1);
        return reponse ;
    }

    -----
    Dernière modification par JPL ; 23/05/2012 à 22h11. Motif: Ajout de la balise Code pour garder l'indentation

  2. #2
    JPL
    Responsable des forums

    Re : Morpion en langage C

    Merci de penser à utiliser la balise Code (#).
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

Discussions similaires

  1. langage C
    Par flolarajasse dans le forum Électronique
    Réponses: 20
    Dernier message: 08/06/2010, 22h42
  2. Langage C-morpion
    Par invite54cf936c dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 07/01/2010, 16h06
  3. de langage C en langage assembleur
    Par invite284746c1 dans le forum Électronique
    Réponses: 1
    Dernier message: 14/05/2009, 12h42
  4. Du langage
    Par invitec15fc0a6 dans le forum Psychologies (archives)
    Réponses: 7
    Dernier message: 18/12/2007, 14h48