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