Morpion comme tout le monde le connais.
Il faut le compiler en mode DOS sinon les contours de mon tableau ne marche pas.
De plus il faut le pavé numérique pour jouer.
Source / Exemple :
#include <iostream.h>
#include <conio.h>
char morp[7][7]={{"ÉÍËÍËÍ»"},{"º º º º"},{"ÌÍÎÍÎ͹"},{"º º º º"},{"ÌÍÎÍÎ͹"},{"º º º º"},{"ÈÍÊÍÊͼ"}};
int Ligne=0, Colonne=0, Joueur, cpt1, cpt2, cpt3, Fin, Case;
void main (void)
{
Joueur=0;
do
{
//Affichage du tableau.
cpt3=7;
for (cpt1=0 ; cpt1<7 ; cpt1++) //Scanne les lignes.
{
gotoxy(35, cpt3);
for (cpt2=0 ; cpt2<7 ; cpt2++) //Scanne les colonnes.
{
cout << morp[cpt1][cpt2];
}
cout << endl;
cpt3=cpt3+1;
}
cout << endl;
do
{
//Vérifie le joueur pair.
if (Joueur==0 || Joueur==2 || Joueur==4 || Joueur==6 || Joueur==8)
{
gotoxy(1, 15);
cout << "Joueur 1" << endl;
}
//Vérifie le joueur impair.
else
{
//gotoxy(1, 15);
cout << "Joueur 2" << endl;
}
do
{
cout << "Veuillez entrer une case : ";
cin >> Case;
if (Case==1)
{
Ligne=5;
Colonne=1;
}
if (Case==2)
{
Ligne=5;
Colonne=3;
}
if (Case==3)
{
Ligne=5;
Colonne=5;
}
if (Case==4)
{
Ligne=3;
Colonne=1;
}
if (Case==5)
{
Ligne=3;
Colonne=3;
}
if (Case==6)
{
Ligne=3;
Colonne=5;
}
if (Case==7)
{
Ligne=1;
Colonne=1;
}
if (Case==8)
{
Ligne=1;
Colonne=3;
}
if (Case==9)
{
Ligne=1;
Colonne=5;
}
}
while (Case>9);
//Vérifie s'il n'y a rien dans la case demandée
if (morp[Ligne][Colonne]==' ')
{
if (Joueur==0 || Joueur==2 || Joueur==4 || Joueur==6 || Joueur==8)
{
morp[Ligne][Colonne]='x'; //et met une croix dans cette case.
clrscr();
}
if (Joueur==1 || Joueur==3 || Joueur==5 || Joueur==7)
{
morp[Ligne][Colonne]='o'; //et met un rond dans cette case.
clrscr();
}
Joueur=Joueur+1; //Changement de joueur.
}
else //Sinon affiche le message et recommence la saisie.
{
cout << "Cette case est deja prise.";
}
}
while (morp[Ligne][Colonne]!='x' && morp[Ligne][Colonne]!='o');
//Vérifie si des lignes sont faites.
if (morp[1][1]=='x' && morp[1][3]=='x' && morp[1][5]=='x' || morp[3][1]=='x' && morp[3][3]=='x' && morp[3][5]=='x' || morp[5][1]=='x' && morp[5][3]=='x' && morp[5][5]=='x' || morp[1][1]=='x' && morp[3][1]=='x' && morp[5][1]=='x' || morp[1][3]=='x' && morp[3][3]=='x' && morp[5][3]=='x' || morp[1][5]=='x' && morp[3][5]=='x' && morp[5][5]=='x' || morp[1][1]=='x' && morp[3][3]=='x' && morp[5][5]=='x' || morp[1][5]=='x' && morp[3][3]=='x' && morp[5][1]=='x')
{
cout << "Le joueur 1 a gagné. ";
Fin=1;
}
if (morp[1][1]=='o' && morp[1][3]=='o' && morp[1][5]=='o' || morp[3][1]=='o' && morp[3][3]=='o' && morp[3][5]=='o' || morp[5][1]=='o' && morp[5][3]=='o' && morp[5][5]=='o' || morp[1][1]=='o' && morp[3][1]=='o' && morp[5][1]=='o' || morp[1][3]=='o' && morp[3][3]=='o' && morp[5][3]=='o' || morp[1][5]=='o' && morp[3][5]=='o' && morp[5][5]=='o' || morp[1][1]=='o' && morp[3][3]=='o' && morp[5][5]=='o' || morp[1][5]=='o' && morp[3][3]=='o' && morp[5][1]=='o')
{
cout << "Le joueur 2 a gagné. ";
Fin=1;
}
//Vérifie si tableau remplie.
if (morp[1][1]!=' ' && morp[1][3]!=' ' && morp[1][5]!=' ' && morp[3][1]!=' ' && morp[3][3]!=' ' && morp[3][5]!=' ' && morp[5][1]!=' ' && morp[5][3]!=' ' && morp[5][5]!=' ')
{
cout << "La partie est terminée.";
Fin=1;
}
}
while (Fin != 1);
}
12 févr. 2003 à 00:20
Tu m'as fait rire toi, cependant, tu as entièrement raison mais à l'époque que j'avais fait ça, j'y avais pas pensé.
11 févr. 2003 à 23:24
heu un ptit conseil dans la déclaration de tes varialbes tu nommes une variable "case" mais "case" est un nom réservé en C++ on l'utilise avec un "Switch case" donc ton prog ne tourne pas sous C++ donc rajoute un "s" à tous les "case"...allez bonne continuation...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.