|
|
Bonjour,
J'ai fait un jeu d'echec en language C.
Il fonctionne très bien mais j'ai un souci: la tour et le fou n'avancent que d'une seule case...
Je n'arrive pas à les faire bouger de plusieurs cases...
Si vous voyez une erreur flagrante, merci de m'aider
voici la fonction Fou et la fonction Tour:
void tour (char tab[8][8],int i,int j,int I,int J, int cible)
{
int k;
if ( (I==i)&&(j+1<J))
{ for(k=j+2;k=J;k++)
{ if (tab[k-1]!=0) {cible=0;}}
if (cible==1) { (tab[I][J]=tab[j]) ; (tab[j]=0);}
}
else { if ((I==i)&&(J==j+1)){ (tab[I][J]=tab[j]) ; (tab[j]=0);}
else { if ( (I==i)&&(j-1>J))
{ for(k= J;k=j-2;k++)
{ if (tab[k+1]=!0) {cible=0;}};
if (cible==1) {tab[I][J]=tab[j]; tab[j]=0;}
}
else { if ((I==i)&&(J==j-1)){tab[I][J]=tab[j]; tab[j]=0;}
else { if ( (J == j)&&( i +1< I))
{ for(k=i+2;k=I;k++)
{ if (tab[k-1][j]!=0) {cible=0;} }
if (cible==1) {tab[I][J]=tab[j]; tab[j]=0;}
}
else { if ((J == j)&&( I == i +1)){tab[I][J]=tab[j]; tab[j]=0;}
else { if ( (J == j)&&( i -1> I))
{ for(k= I;k=i-2;k++)
{ if (tab[k+1][j]!=0) {cible=0;} }
if (cible==1) { tab[I][J]=tab[j]; tab[j]=0;}
}
else { if ((J == j)&&( I == i -1)){ tab[I][J]=tab[j]; tab[j]=0;}
else {cible=0;} }}}}}}}
}
void fou (char tab[8][8] ,int i,int j,int I,int J, int cible)
{
int m,n;
n=j-i;
if ( (i+1<I)&& (j+1<J) )
{ for(m=i+2;m=I;m++) { if (tab[m-1][m+n-1]!=0) {cible=0;} }
if (cible==1) { tab[I][J]=tab[j]; tab[j]=0;}
}
else { if ( (i+1==I)&& (j+1==J) ) { tab[I][J]=tab[j]; tab[j]=0;}
else { if ((i-1>I)&& (j-1>J))
{ for(m=I;m=i-2;m++) { if (tab[m+1][m+n+1]!=0) {cible=0;}};
if (cible==1) { tab[I][J]=tab[j]; tab[j]=0;}
}
else { if ((i-1==I)&&(j-1==J)) { tab[I][J]=tab[j]; tab[j]=0;}
else { if ( (i+1<I)&& (j-1>J) )
{ for(m=i+2;m=I;m++) { if (tab[m-1][i+i-m+n+1]!=0) {cible=0;} }
if (cible==1) { tab[I][J]=tab[j]; tab[j]=0;}
}
else { if ( (i+1==I)&& (j-1==J) ) { tab[I][J]=tab[j]; tab[j]=0;}
else { if ( (i-1>I)&& (j+1<J) )
{ for(m=j+2;m=J;m++) { if (tab[j+j-m-n+1][m-1]!=0)
{cible=0;} }
if (cible==1) { tab[I][J]=tab[j]; tab[j]=0;}
}
else { if ( (i-1==I)&& (j+1==J) ) { tab[I][J]=tab[j]; tab[j]=0;}
else {cible=0;} } } } } } } }
}
|