1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
   |  
#include <stdio.h>
#define nb_lig 6
#define nb_col 7
 
/* Initialisation de la grille par '.' */
void initialisation_grille(char grille[nb_lig][nb_col]){
     int i, j;
 
     for (i=0; i<nb_lig; i++){
 
        for (j=0 ; j<nb_col; j++){
            grille[i][j]='.';
        }
 
     }
}
 
 
 
/* Affichage de la grille */
void draw_grille(char grille[nb_lig][nb_col]){
(...)
}
 
 
 
 
/* Fonction permettant de placer un pion verticalement selon la colonne choisit */
int placer_pion(char grille[nb_lig][nb_col], int col, char pion){
(...)
}
 
 
 
 
/* Test puissance 4 en ligne */
int ligne4(char grille[nb_lig][nb_col], int num_lig, int num_col, char pion){
(...)
}
 
/* Test puissance 4 en ligne */
int colonne4(char grille[nb_lig][nb_col], int num_lig, int num_col, char pion){
(...)
}
 
/* Test puissance 4 en diagonale decroissante "\" */
int diagonale4_decroissante(char grille[nb_lig][nb_col], int num_lig, int num_col, char pion){
(...)
}
 
/* Test puissance 4 en diagonale croissante "/" */
int diagonale4_croissante(char grille[nb_lig][nb_col], int num_lig, int num_col, char pion){
(...)
}
 
/* Fonction permettant de verifier la présence d'un puissance 4 dans la grille */
int verif_puissance4(char grille[nb_lig][nb_col], int num_lig, int num_col, char pion){
    return ligne4(grille, num_lig, num_col, pion) ||
           colonne4(grille, num_lig, num_col, pion) ||
           diagonale4_decroissante(grille, num_lig, num_col, pion) ||
           diagonale4_croissante(grille, num_lig, num_col, pion);
}
 
 
 
 
/* Main */
int main (void){
    char grille[nb_lig][nb_col];
    char pion_joueur;
    int nb_coup, i, j;
    int choix_col, num_col, horiz_col;
    int victoire=0;
 
    initialisation_grille(grille);
 
    nb_coup=1;
 
    /*boucle principale*/
    do{
 
       if (nb_coup%2==1){
                          pion_joueur='O';
                          }
       else{
            pion_joueur='X';
            }
 
       system("cls");
       draw_grille(grille);
 
       do{
          printf("Colonne : ");
          scanf("%d", &choix_col);
          }while(choix_col<1 || choix_col>nb_col);
 
       /* placement du pion*/
       num_col=choix_col-1;
       horiz_col=placer_pion(grille, num_col, pion_joueur);
 
       victoire=verif_puissance4(grille, horiz_col, num_col, pion_joueur);// Test de victoire
 
       nb_coup++;
       }while(nb_coup<=42 && victoire==0);// Nbre de cases jouables: 7*6=42cases jouables
 
       draw_grille(grille);
 
       if(nb_coup==43)
                       printf("match nul\n\n");
       else
           printf("Partie terminee: \"%c\" gagne la partie\n\n", pion_joueur);
 
       system("pause");
 
       return 0;
} | 
Partager