Voila je fais un petit jeu du morpion pour m´entrainer, donc g qqs prob :
- il est chelou lol : (
- g que des O et je voudrais mettre des X
- mon code doit etre completement faux :
//les includes
- include <stdio.h>
- include <stdlib.h>
char matrice[3][3]; //matrice du morpion
char fin;
char check(void);
void init_matrice(void);
void joueur(void);
void joueur2(void);
void disp_matrice(void);
//programme principal
int main(void)
{
char done;
printf("Ceci est le jeu du morpion\n");
printf("Vous jouez contre un ami a vous\n");
done = ´ ´;
init_matrice();
do
{
disp_matrice();
joueur();
//déterminer s´il existe un vainqueur
done = check();
if ( done ! = ´ ´) break; //gagné
player2();
//déterminer s´il existe un vainqueur
done = check();
}
while ( done == ´ ´);
if(done == ´X´) printf("Vous avez gagné\n");
else printf("J\´ai gagné\n");
//afficher les positions finales
disp_matrice();
getch();
}
//initialiser la matrice
void init_matrice(void)
{
int i, j;
for ( i = 0; i < 3; i++)
for ( j = 0; j < 3; j++) matrice[i][j] = ´ ´;
}
//obtenir un mouvement du joueur
void joueur(void)
{
int x, y;
//le joueur décide où il va jouer
la :
printf("Pour jouer, entrez les coordonnées x et y\n\n");
scanf("%d %d", &, &);
getchar();
x--;
y--;
//vérification de la validité des coordonnées entrées par le joueur
if(matrice[x][y] ! = ´ ´)
{
printf("choix non valide, réentrez vos coordonnées\n");
goto la;
}
else matrice[x][y] = ´O´;
}
//faire jouer l´ordinateur
void player2(void)
{
int i, j;
for(i = 0; i < 3; i++);
for(j = 0; j < 3; j++);
if(matrice[i][j] == ´ ´)
{
goto ici;
}
if(matrice[i][j] == ´O´) getch();
//on teste si la partie est nulle
ici :
if(i * j == 9)
{
printf("partie nulle\n");
}
else matrice[i][j] = ´X´;
}
//afficher la matrice à l´écran
void disp_matrice(void)
{
int t;
for(t = 0; t < 3; t++)
{
printf(" %c | %c | %c", matrice[t][0], matrice[t][1], matrice[t][2]);
if(t ! = 2) printf("\n---|---|---\n");
}
printf("\n");
}
//déterminer s´il y a un vainqueur
char check(void)
{
int i;
//vérification des lignes
for(i = 0; i < 3; i++)
if(matrice[i][0] == matrice[i][1] && matrice [i][0] == matrice[i][2])
{
return matrice[i][0];
}
//contrôle des colonnes
for(i = 0; i < 3; i++)
if(matrice[0][i] == matrice[1][i] && matrice[0][i] == matrice[2][i])
{
return matrice[0][i];
}
//examen des diagonales
if(matrice[0][0] == matrice[1][1] && matrice[1][1] == matrice[2][2])
{
return matrice[0][0];
}
if(matrice[0][2] == matrice[1][1] && matrice[1][1] == matrice[2][0])
{
return matrice[0][2];
}
return ´ ´;
}