求助
  • 板块学术版
  • 楼主andygao
  • 当前回复8
  • 已保存回复8
  • 发布时间2021/8/17 16:49
  • 上次更新2023/11/4 10:19:04
查看原帖
求助
542705
andygao楼主2021/8/17 16:49

这份代码为什么运行不起来?

#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;
	}
}
2021/8/17 16:49
加载中...