消除游戏"ZUOYI"子程序运行不对,求不对的原因?谢谢!
这是一个消除游戏的C代码,ZUOYI这个子程序运行不对,其余全对。求解zuoyi子程序错误原因。谢谢!#include <stdio.h>
#include <stdlib.h>
int x,y,o,s,l,h,i,n;
int a[12][12]={0};
int cxx[5],cyy[5];
void kuozhan(int xy,int yx)
{
int xxy,yyx;
for(i=0;i<=4;i++)
{
xxy=xy+cxx[i];yyx=yx+cyy[i];
if(a[xxy][yyx]!=0&&xxy>0&&yyx>0&&xxy<11&&yyx<11&&a[xxy][yyx]==o)
{
a[xxy][yyx]=0;
s++;
kuozhan(xxy,yyx);
kuozhan(xy,yx);
}
}
}
void xialuo()
{
for(l=1;l<=10;l++)
for(h=1;h<=10;h++)
if(a[h][l]==0)
{
n=h;
while(n>=1)
{
a[n][l]=a[n-1][l];
n--;
}
}
}
void zuoyi()
{
for(l=1;l<=10;l++)
{
if(a[10][l]==0);
{
n=l;
while(n<=10)
{
for(i=1;i<=10;i++)
a[i][n]=a[i][n+1];
n++;
}
}
}
}
int main()
{
FILE *fin,*fout;
fin=fopen("方块消除.in","r");
fout=fopen("方块消除.out","w");
for(h=1;h<=10;h++)
for(l=1;l<=10;l++)
fscanf(fin,"%d",&a[h][l]);
fscanf(fin,"%d%d",&x,&y);
int xxy,yyx,xy,yx;
s=1;o=a[x][y];a[x][y]=0;xy=x;yx=y;n=0;
cxx[0]=0;cxx[1]=-1;cxx[2]=0;cxx[3]=0;cxx[4]=1;
cyy[0]=0;cyy[1]=0;cyy[2]=1;cyy[3]=-1;cyy[4]=0;
for(i=0;i<=4;i++)
{
xxy=xy+cxx[i];yyx=yx+cyy[i];
if(a[xxy][yyx]!=0&&xxy>0&&yyx>0&&xxy<11&&yyx<11&&a[xxy][yyx]==o)
{
a[xxy][yyx]=0;
s++;
kuozhan(xxy,yyx);
kuozhan(xy,yx);
}
}
if(o==0)s=0;
if(s!=1&&o!=0) {xialuo();zuoyi();}
else a[x][y]=o;
fprintf(fout,"%d\n",s*s);
for(h=1;h<=10;h++)
{
for(l=1;l<=10;l++)
fprintf(fout,"%d ",a[h][l]);
fprintf(fout,"\n");
}
fclose(fin);
fclose(fout);
return 0;
}