c是车,m是马,x是象,s是士,w是王,y是鸭,b是兵。(函数名解谜)
1是蓝车,2是蓝马,3是蓝象,4是蓝士,5是蓝王,6是蓝鸭,7是蓝兵。
红色的棋子以此类推,就是蓝色对应棋子的编号+7
void cfg(int sh)
{
int i,j;
i=x-1,j=y;
while(i>=0)
{
if(a[i][j])
{
if(sh) if(a[i][j]==5){xxflag=1;return;}
if(!sh) if(a[i][j]==12){xxflag=1;return;}
break;
}
i--;
}
i=x+1,j=y;
while(i<=9)
{
if(a[i][j])
{
if(sh) if(a[i][j]==5){xxflag=1;return;}
if(!sh) if(a[i][j]==12){xxflag=1;return;}
break;
}
i++;
}
i=x,j=y+1;
while(j<=8)
{
if(a[i][j])
{
if(sh) if(a[i][j]==5){xxflag=1;return;}
if(!sh) if(a[i][j]==12){xxflag=1;return;}
break;
}
j++;
}
i=x,j=y-1;
while(j>=0)
{
if(a[i][j])
{
if(sh) if(a[i][j]==5){xxflag=1;return;}
if(!sh) if(a[i][j]==12){xxflag=1;return;}
break;
}
j--;
}
}
void mfg(int sh)
{
if(!a[x][y-1])
{
if(sh) if(y-2>=0) if(a[x+1][y-2]==5||a[x-1][y-2]==5&&x-1>=0){xxflag=1;return;}
if(!sh) if(y-2>=0) if(a[x+1][y-2]==12||a[x-1][y-2]==12&&x-1>=0){xxflag=1;return;}
}
if(!a[x][y+1])
{
if(sh) if(a[x+1][y+2]==5||a[x-1][y+2]==5&&x-1>=0){xxflag=1;return;}
if(!sh) if(a[x+1][y+2]==12||a[x-1][y+2]==12&&x-1>=0){xxflag=1;return;}
}
if(!a[x-1][y])
{
if(sh) if(x-2>=0) if(a[x-2][y-1]==5&&y-1>=0||a[x-2][y+1]==5){xxflag=1;return;}
if(!sh) if(x-2>=0) if(a[x-2][y-1]==12&&y-1>=0||a[x-2][y+1]==12){xxflag=1;return;}
}
if(!a[x+1][y])
{
if(sh) if(a[x+2][y-1]==5&&y-1>=0||a[x+2][y+1]==5){xxflag=1;return;}
if(!sh) if(a[x+2][y-1]==12&&y-1>=0||a[x+2][y+1]==12){xxflag=1;return;}
}
}
void xfg(int sh)
{
if(!a[x+1][y+1])
{
if(sh&&a[x+2][y+2]==5){xxflag=1;return;}
if(!sh&&a[x+2][y+2]==12){xxflag=1;return;}
}
if(!a[x+1][y-1]&&y-1>=0)
{
if(sh&&a[x+2][y-2]==5&&y-2>=0){xxflag=1;return;}
if(!sh&&a[x+2][y-2]==12&&y-2>=0){xxflag=1;return;}
}
if(!a[x-1][y+1]&&x-1>=0)
{
if(sh&&a[x-2][y+2]==5&&x-2>=0){xxflag=1;return;}
if(!sh&&a[x-2][y+2]==12&&x-2>=0){xxflag=1;return;}
}
if(!a[x-1][y-1]&&x-1>=0&&y-1>=0)
{
if(sh&&a[x-2][y-2]==5&&y-2>=0&&x-2>=0){xxflag=1;return;}
if(!sh&&a[x-2][y-2]==12&&y-2>=0&&x-2>=0){xxflag=1;return;}
}
}
void sfg(int sh)
{
if(sh&&a[x+1][y+1]==5){xxflag=1;return;}
if(!sh&&a[x+1][y+1]==12){xxflag=1;return;}
if(sh&&a[x-1][y+1]==5&&x-1>=0){xxflag=1;return;}
if(!sh&&a[x-1][y+1]==12&&x-1>=0){xxflag=1;return;}
if(sh&&a[x-1][y-1]==5&&x-1>=0&&y-1>=0){xxflag=1;return;}
if(!sh&&a[x-1][y-1]==12&&x-1>=0&&y-1>=0){xxflag=1;return;}
if(sh&&a[x+1][y-1]==5&&y-1>=0){xxflag=1;return;}
if(!sh&&a[x+1][y-1]==12&&y-1>=0){xxflag=1;return;}
}
void wfg(int sh)
{
if(sh&&a[x+1][y]==5){xxflag=1;return;}
if(!sh&&a[x+1][y]==12){xxflag=1;return;}
if(sh&&a[x+1][y+1]==5){xxflag=1;return;}
if(!sh&&a[x+1][y+1]==12){xxflag=1;return;}
if(sh&&a[x][y+1]==5){xxflag=1;return;}
if(!sh&&a[x][y+1]==12){xxflag=1;return;}
if(sh&&a[x-1][y]==5&&x-1>=0){xxflag=1;return;}
if(!sh&&a[x-1][y]==12&&x-1>=0){xxflag=1;return;}
if(sh&&a[x-1][y-1]==5&&x-1>=0&&y-1>=0){xxflag=1;return;}
if(!sh&&a[x-1][y-1]==12&&x-1>=0&&y-1>=0){xxflag=1;return;}
if(sh&&a[x-1][y+1]==5&&x-1>=0){xxflag=1;return;}
if(!sh&&a[x-1][y+1]==12&&x-1>=0){xxflag=1;return;}
if(sh&&a[x][y-1]==5&&y-1>=0){xxflag=1;return;}
if(!sh&&a[x][y-1]==12&&y-1>=0){xxflag=1;return;}
if(sh&&a[x+1][y-1]==5&&y-1>=0){xxflag=1;return;}
if(!sh&&a[x+1][y-1]==12&&y-1>=0){xxflag=1;return;}
}
void yfg(int sh)
{
if(sh&&a[x-2][y+3]==5&&x-2>=0&&!a[x][y+1]&&!a[x-1][y+2]){xxflag=1;return;}
if(!sh&&a[x-2][y+3]==12&&x-2>=0&&!a[x][y+1]&&!a[x-1][y+2]){xxflag=1;return;}
if(sh&&a[x-3][y+2]==5&&x-3>=0&&!a[x-1][y]&&!a[x-2][y+1]){xxflag=1;return;}
if(!sh&&a[x-3][y+2]==12&&x-3>=0&&!a[x-1][y]&&!a[x-2][y+1]){xxflag=1;return;}
if(sh&&a[x-3][y-2]==5&&x-3>=0&&y-2>=0&&!a[x-1][y]&&!a[x-2][y-1]){xxflag=1;return;}
if(!sh&&a[x-3][y-2]==12&&x-3>=0&&y-2>=0&&!a[x-1][y]&&!a[x-2][y-1]){xxflag=1;return;}
if(sh&&a[x-2][y-3]==5&&x-2>=0&&y-3>=0&&!a[x-1][y-2]&&!a[x][y-1]){xxflag=1;return;}
if(!sh&&a[x-2][y-3]==12&&x-2>=0&&y-3>=0&&!a[x-1][y-2]&&!a[x][y-1]){xxflag=1;return;}
if(sh&&a[x+2][y-3]==5&&y-3>=0&&!a[x][y-1]&&!a[x+1][y-2]){xxflag=1;return;}
if(!sh&&a[x+2][y-3]==12&&y-3>=0&&!a[x][y-1]&&!a[x+1][y-2]){xxflag=1;return;}
if(sh&&a[x+3][y-2]==5&&y-2>=0&&!a[x+1][y]&&!a[x+2][y-1]){xxflag=1;return;}
if(!sh&&a[x+3][y-2]==12&&y-2>=0&&!a[x+1][y]&&!a[x+2][y-1]){xxflag=1;return;}
if(sh&&a[x+3][y+2]==5&&!a[x+1][y]&&!a[x+2][y+1]){xxflag=1;return;}
if(!sh&&a[x+3][y+2]==12&&!a[x+1][y]&&!a[x+2][y+1]){xxflag=1;return;}
if(sh&&a[x+2][y+3]==5&&!a[x][y+1]&&!a[x+1][y+2]){xxflag=1;return;}
if(!sh&&a[x+2][y+3]==12&&!a[x][y+1]&&!a[x+1][y+2]){xxflag=1;return;}
}
void bfg(int sh)
{
if(sh&&a[x+1][y]==5){xxflag=1;return;}
if(!sh&&a[x+1][y]==12){xxflag=1;return;}
if(sh&&a[x+1][y+1]==5){xxflag=1;return;}
if(!sh&&a[x+1][y+1]==12){xxflag=1;return;}
if(sh&&a[x][y+1]==5){xxflag=1;return;}
if(!sh&&a[x][y+1]==12){xxflag=1;return;}
if(sh&&a[x-1][y]==5&&x-1>=0){xxflag=1;return;}
if(!sh&&a[x-1][y]==12&&x-1>=0){xxflag=1;return;}
if(sh&&a[x-1][y-1]==5&&x-1>=0&&y-1>=0){xxflag=1;return;}
if(!sh&&a[x-1][y-1]==12&&x-1>=0&&y-1>=0){xxflag=1;return;}
if(sh&&a[x-1][y+1]==5&&x-1>=0){xxflag=1;return;}
if(!sh&&a[x-1][y+1]==12&&x-1>=0){xxflag=1;return;}
if(sh&&a[x][y-1]==5&&y-1>=0){xxflag=1;return;}
if(!sh&&a[x][y-1]==12&&y-1>=0){xxflag=1;return;}
if(sh&&a[x+1][y-1]==5&&y-1>=0){xxflag=1;return;}
if(!sh&&a[x+1][y-1]==12&&y-1>=0){xxflag=1;return;}
}
void jj()
{
for(int i=0;i<=9;i++)
for(int j=0;j<=8;j++)
{
if(a[i][j]==1) cfg(0);
if(a[i][j]==2) mfg(0);
if(a[i][j]==3) xfg(0);
if(a[i][j]==4) sfg(0);
if(a[i][j]==5) wfg(0),w++;
if(a[i][j]==6) yfg(0);
if(a[i][j]==7) bfg(0);
if(a[i][j]==8) cfg(1);
if(a[i][j]==9) mfg(1);
if(a[i][j]==10) xfg(1);
if(a[i][j]==11) sfg(1);
if(a[i][j]==12) wfg(1),w++;
if(a[i][j]==13) yfg(1);
if(a[i][j]==14) bfg(1);
}
}