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
| #include <stdio.h>
#include <string.h>
#include "puissance4.h"
/*
affiche la grille de jeu
*/
void afficheGrille(couleur gr[MAX_L][MAX_C],int nbcoupj1,int nbcoupj2, char nom1[], char nom2[])
{
int i,j;
/* affiche la ligne de titre */
printf("\n%s %s %s %d %s %s %s %d %s","Joueur 1 [",nom1,"] : ",nbcoupj1,
" -- Joueur 2 [",nom2,"] : ",nbcoupj2,"\n\n");
/* affiche les lignes de légende */
printf("%s"," ");
for (j=0;j<MAX_C;j++) { printf("%s %d"," | ",j); }
printf("%s"," |\n");
printf("%s"," ");
/* affiche la ligne de séparateur */
for (j=0;j<MAX_C;j++) { printf("%s","-----"); }
printf("%s","---\n");
/* affiche chaque ligne de la grille */
for(i=MAX_L-1;i>=0;i--)
{
printf("%2d",i);
for (j=0;j<MAX_C;j++)
printf("%s %c"," | ",(char)gr[i][j]);
printf("%s"," |\n");
}
}
/*
initialise la structure principale dune partie
*/
void initialise(partie * mapartie)
{
char temp;
for(int i=0;i<MAX_L;i++)
{
for (int j=0;j<MAX_C;j++)
{
mapartie->grille[i][j]=aucune;
}
}
printf("%s ", "entrer nom joueur1");
scanf("%s",mapartie->joueur1.nom); //le nom entré par le joueur est stocké dans mapartie.
printf("\n%s ", "entrer la couleur du joueur1");
scanf("%s",&temp); //la couleur entrée par le joueur est stocké dans une variable temporaire.
mapartie->joueur1.couleur_joueur=(couleur) temp; //le contenu stocké dans la variable temporaire est placé dans mapartie.
mapartie->nbcp1=0;
printf("\n%s ", "entrer nom joueur2");
scanf("%s",mapartie->joueur2.nom); //le nom entré par le joueur est stocké dans mapartie.
printf("\n%s ", "entrer la couleur du joueur2");
scanf("%s",&temp); //la couleur entrée par le joueur est stocké dans une variable temporaire.
mapartie->joueur2.couleur_joueur=(couleur) temp; //le contenu stocké dans la variable temporaire est placé dans mapartie.
mapartie->nbcp2=0;
}
/*
lance une partie
*/
void jouePartie(partie * mapartie)
{
int col; //col sera la colonne entré par le joueur .
int i=0; //i nous permettera de parcourir la colonne séléctionner par le joueur.
int trouver=0; //trouver nous aidera à placer la couleur du joueur à un emplacement libre.
//la condition principale va nous permettre de savoir qui doit jouer selon le compteur des deux joueurs.
if (mapartie->nbcp2 <= mapartie->nbcp1){
printf("%s", mapartie->joueur1.nom);
printf(" deposer votre pion dans une colonne :");
scanf("%d",&col);
//la boucle ci-dessous s'arretera lorsque l'emplacement sera trouver ou que la colonne sera pleine.
//elle nous permet de parcourir la colonne.
while(i<MAX_L && !trouver){
//la condition permet de vérifier si la case souhaiter et vide ou non.
if (mapartie->grille[i][col]=aucune){
mapartie->grille[i][col]= mapartie->joueur1.couleur_joueur;
trouver=1;
}
else{
i++;
}
}
}
//on retrouve le même schéma que précedemment pour le joueur 2.
else{
printf("%s", mapartie->joueur2.nom);
printf(" deposer votre pion dans une colonne :");
scanf("%d",&col);
while(i<MAX_L && !trouver){
if (mapartie->grille[i][col]=aucune){
mapartie->grille[i][col]= mapartie->joueur2.couleur_joueur;
trouver=1;
}
else{
i++;
}
}
}
} |
Partager