Jeux de dame

Signaler
-
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
-
bjr à tous je suis aussi débutant à c++ et je viens pas à faire la fonction de plusieur capture mm j'ai faire une seule capture. j'ai réflichi à faire une boucle dans la quelle j'interviens ma fonction d'une seule mais ça ne marche pas. est ce qu'il ya une proposition . voilà mon code :

#include



using namespace std;
const int Nmax=10;
class plateau
{

public:
char mat[10][10];

public:
plateau();
void affichage();
char getcase(int couple);
void setcase(int couple,char valeur);
void permuter(char &a,char &b);
void deplacer1(plateau &p);
void deplacer2(plateau &p);
void capture1(plateau &p);
void capture2(plateau &p);
//void plcapture1(plateau &p);
//void plcapture2(plateau &p);


};
plateau::plateau()
{

int i;
int j;

// Mettre un '.' sur TOUTES les cases
for(i=0;i<5;i++) // i ligne
{
for(j=0;j<5;j++) // j colonne
{
mat[2*i][2*j]='.';
mat[2*i][2*j+1]='.';
mat[2*i+1][2*j+1]='.';
mat[2*i+1][2*j]='.';
}
}

// Mettre un 'n' sur uniquement les cases NOIR
for(i=0;i<4;i++) // i ligne
{
for(j=0;j<5;j++) // j colonne
{

if ((i==0) ||(i==2) )
{

mat[i][2*j+1]='X';
}
else
{
mat[i][2*j]='X';

}
}
}

// Mettre un 'b' sur uniquement les cases BLANC
for(i=6;i<10;i++) // i ligne
{
for(j=0;j<5;j++) // j colonne
{

if ((i==6) ||(i==8) )
{

mat[i][2*j+1]='O';
}
else
{
mat[i][2*j]='O';

}
}
}
}

void plateau::affichage()
{

cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl;


for (int i=0;i<Nmax;i++)
{

cout<<" |";


for(int j=0;j<Nmax;j++)

{

cout<<mat[i][j];
}
cout<<"|"<<endl;
}
}


char plateau::getcase(int couple)
{int i,j;
j=couple/10;
i=couple%10;
return mat[i][j];
}


void plateau::setcase(int couple,char valeur)
{
int i,j;
j=couple/10;
i=couple%10;
if((i>=0)&&(i<10)&&(j<10)&&(j>=0))

mat[i][j]=valeur;

else

cout << "il y a une ereur dans setcase, paramettre hors borne i=\n";
}

void plateau::permuter(char &a,char &b)
{
char c;
c=a;
a=b;
b=c;
}




void plateau::deplacer1(plateau &p)
{
//cout<<"kkkkk";
int i,j,k,l;
int casin,casf;
//do {
do
{
cout<<"introduisez la case de départ:"; cout<<endl<<"i=";
cin>>i; cout<<"j="; cin >>j;
}while(p.mat[i][j]!='X');
cout<>k; cout<<"l="; cin >>l;

}while(p.mat[k][l]!='.');
cout<>i; cout<<"j="; cin >>j;
}while(p.mat[i][j]!='O');
cout<<endl;
do{
cout<<"introduisez la case d'arrivée:";cout<<endl<<"k=";
cin>>k; cout<<"l="; cin >>l;

}while(p.mat[k][l]!='.');
cout<>i; cout<<"j="; cin >>j;
}while(p.mat[i][j]!='X');
cout<<mat[i][j]<<endl;
cout<<endl;

do{
cout<<"introduisez la case d'arrivée:";cout<<endl<<"k=";
cin>>k; cout<<"l="; cin >>l;

}while(p.mat[k][l]!='.');
cout<<mat[k][l]<<endl;

if(p.mat[i][j]=='X' && p.mat[i+1][j+1]=='O' && p.mat[k][l]=='.' && p.mat[k][l]==p.mat[i+2][j+2])

{
plateau::permuter(p.mat[i][j],p.mat[k][l]);
p.mat[i+1][j+1]='.';
if(p.mat[k][l]=='O' || p.mat[k][l]=='X')
{
cout<<"capture incorrect"<<endl;
}
}

if(p.mat[i][j]=='X' && p.mat[i+1][j-1]=='O' && p.mat[k][l]=='.' && p.mat[k][l]==p.mat[i+2][j-2])
{
plateau::permuter(p.mat[i][j],p.mat[k][l]);
p.mat[i+1][j-1]='.';
if(p.mat[k][l]=='O' || p.mat[k][l]=='X')
{
cout<<"capture incorrect"<<endl;
}
}







}




void plateau::capture2(plateau &p)
{
int i,j,k,l;

do
{
cout<<"introduisez la case de départ:"; cout<<endl<<"i=";
cin>>i; cout<<"j="; cin >>j;
}while(p.mat[i][j]!='O');
cout<<endl;

do{
cout<<"introduisez la case d'arrivée:";cout<<endl<<"k=";
cin>>k; cout<<"l="; cin >>l;

}while(p.mat[k][l]!='.');


if(p.mat[i][j]=='O' && p.mat[i-1][j+1]=='X' && p.mat[k][l]=='.' && p.mat[k][l]==p.mat[i-2][j+2])

{
plateau::permuter(p.mat[i][j],p.mat[k][l]);
p.mat[i-1][j+1]='.';
if(p.mat[k][l]=='O' || p.mat[k][l]=='X')
{
cout<<"capture incorrect"<<endl;
}
}

if(p.mat[i][j]=='O' && p.mat[i-1][j-1]=='X' && p.mat[k][l]=='.' && p.mat[k][l]==p.mat[i-2][j-2])
{
plateau::permuter(p.mat[i][j],p.mat[k][l]);
p.mat[i-1][j-1]='.';
if(p.mat[k][l]=='O' || p.mat[k][l]=='X')
{
cout<<"capture incorrect"<<endl;
}
}


}

int main()
{
plateau p;
p.affichage();
p.deplacer1(p);
p.affichage();
p.deplacer2(p);
p.affichage();
p.deplacer1(p);
p.affichage();
p.deplacer2(p);
p.affichage();
p.deplacer1(p);
p.affichage();
p.deplacer2(p);
p.affichage();
p.deplacer1(p);
p.affichage();
p.deplacer2(p);
p.affichage();
p.capture1(p);
p.affichage();


}



et Merci

1 réponse

Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
Bonjour.

Pas de balises de code == Pas de réponse.
Merci de relire le règlement.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question