这份代码为什么运行不起来?
#include <cstdio>
int a[11][11];
int dire[8][2] = {{0,1},{0,-1},{1,0},{-1,0},{-1,-1},{1,1},{1,-1},{-1,1}};
int n;
int abs(int x) {return x>=0?x:-x;}
bool find(int col,int x,int y){
bool flag = false;
for(int i = 0;i< 8;i++){
int nx = x+dire[i][0],ny = y+dire[i][1];
while (nx && ny&&nx-9&&ny-9){
if(a[nx][ny]!=(col == 1?-1:1)){
break;
}
nx +=dire[i][0];
ny +=dire[i][1];
}
if(a[nx][ny]==col && (abs(nx-x)>1||abs(ny-y)>1)){
flag = true;
nx-=dire[i][0];
ny-=dire[i][0];
while(nx != x||ny!=y){
a[nx][ny]=col;
nx -=dire[i][0];
ny -=dire[i][1];
}
}
}
return flag;
}
int main(){
scanf("%d",&n);
a[4][4]=-1,a[5][5] = -1,a[4][5]=1,a[5][4]=1;
int turn = -1;
for(int i = 1;i<=n;i++){
int x,y;
scanf("%d%d",&x,&y);
if(a[x][y]){
continue;
}
if(find(turn,x,y)){
a[x][y] = turn;
turn = turn == 1? -1:1;
}
}
for(int i = 1;i<=8;i++){
for(int j = 1;j<=8;j++){
putchar(a[i][j]?(a[i][j]==-1?'B':'W'):'.');
putchar('\n');
}
return 0;
}
}