- /*Simple jeu de morpion*/
-
- //les includes
- #include <stdio.h>
- #include <stdlib.h>
-
- //les déclarations
- char matrice[3][3]; //matrice du morpion
- char fin;
-
- //prototypes des fonctions
- char check(void);
- void init_matrice(void);
- void joueur(void);
- void joueur2(void);
- void disp_matrice(void);
-
- //programme principal
- int main(void)
- {
-
- //les déclarations
- 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)
- {
-
- //déclarations
- 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)
- {
-
- //déclarations
- 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", &x, &y);
- 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)
- {
-
- //déclarations (oui je sais je suis chiant à toujours marquer ça)
- 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)
- {
-
- //une seule déclaration ce coup ci ;-)
- 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)
- {
-
- //LA déclaration (la dernière) !!!
- 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 ' ';
- }
-
/*Simple jeu de morpion*/
//les includes
#include <stdio.h>
#include <stdlib.h>
//les déclarations
char matrice[3][3]; //matrice du morpion
char fin;
//prototypes des fonctions
char check(void);
void init_matrice(void);
void joueur(void);
void joueur2(void);
void disp_matrice(void);
//programme principal
int main(void)
{
//les déclarations
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)
{
//déclarations
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)
{
//déclarations
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", &x, &y);
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)
{
//déclarations (oui je sais je suis chiant à toujours marquer ça)
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)
{
//une seule déclaration ce coup ci ;-)
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)
{
//LA déclaration (la dernière) !!!
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 ' ';
}