Bonjour,
svp j'ai fait un programme du morpion en c mais i y a eu des fautes que je n'ai pas pu les corriger,
donc svp qui peut m'aider à trouver la solution est me donner la correction.
cé urgent
#include<stdio.h>
#include<conio.h>
#define Lmax 3
#define Cmax 3
typedef int tab[Lmax][Cmax];
tab t;
void Miseazero(tab t)
{
int i,j ;
for(i=0;i<Lmax;i++)
for(j=0;j<Cmax;j++)
t[i][j]=0;
}
void affichetableau(tab t)
{
int i,j;
for(i=0;i<Lmax;i++){
for(j=0;j<Cmax;j++)
printf("%d ",t[i][j]);
printf("\n\n\n");
}
}
int coupvalide(tab t,int a,int b)
{
int trouve=0;
if(t[a][b]==0)
trouve=1;
else trouve=0;
return(trouve);
}
int ver(tab t)
{
int i,j,cond=0;
do
{
j=0;
for(i=0;i<Lmax;i++)
if (t[i][j]==1||t[i][j]==2)
cond=1;
j++;
}
while(j<3);
return(cond);
}
int lignehor(tab t)
{
int i,j,cond=0;
do
{
i=0;
for(j=0;j<Cmax;j++)
if(t[i][j]==1||t[i][j]==2)
cond=1;
i++;
}
while(i<3);
return(cond);
}
int lignediagD(tab t)
{
int i,cond=0;
for(i=0;i<Lmax;i++)
if(t[i][i]==1||t[i][i]==2)
cond=1;
return(cond);
}
int lignediagG(tab t)
{
int i,j,cond=0;
for(i=0;i<Lmax;i++)
for(j=2;j<1;j--)
if(t[i][j]==1||t[i][j]==2)
cond=1;
return(cond);
}
int saisieval(tab t,int a,int b,int numjoueur)
{
int cond=0;
if(coupvalide(t,a,b)==1)
{
t[a][b]=numjoueur;
cond=1;
}
else
cond=0;
return(cond);
}
void main()
{
int l,c,a,b,i=1;
clrscr();
Miseazero(t);
affichetableau(t);
getch();
do
{
if(i%2==1)
{
do{
printf("le joueur1 joue");
printf("\n taper l :");
scanf("%d",&l);
printf("\n taper c :");
scanf("%d",&c);
}
while((saisieval(t,l,c,1)==0)||((l>3)&&(c>3)));
affichetableau(t);
}else
{
do{
printf("le joueur2 joue");
printf("\n taper a :");
scanf("%d",&a);
printf("\n taper b :");
scanf("%d",&b);
}while((saisieval(t,a,b,2)==0)||((a>3)&&(b>3)));
affichetableau(t);
}
i++;
}
while((i<10)&&(ver(t)==0)&&(lignehor(t)==0)&&(lignediagD(t)==0)&&(lignediagG(t)==0));
if(i==9) printf("execo");
else if((i-1)%2==1) printf("le joueur1 a gagner");
else if((i-1)%2==0) printf("le joueur2 a gagner");
getch();
}
