社区讨论

HELP!!!急

CF3CTic-tac-toe参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo2k8j3o
此快照首次捕获于
2023/10/23 15:12
2 年前
此快照最后确认于
2023/10/23 15:12
2 年前
查看原帖
using namespace std;
char a[5][5];
int fa,fb;
map<char,int> b;
int main(){
	for(int i=1;i<=3;i++){
		for(int j=1;j<=3;j++){
			cin>>a[i][j];
			b[a[i][j]]++;
		}
	}
	if(b['0']>b['X']||b['X']-1>b['0']){
		cout<<"illegal"<<endl;
		return 0;
	}
	if(b['.']>5){
		if(b['X']>b['0']) cout<<"second"<<endl;
		else cout<<"first"<<endl;
		return 0;
	}
	for(int i=1;i<=3;i++){
		int la=0,lb=0;
		for(int j=1;j<=3;j++){
			if(a[i][j]=='.'||(la&&lb)) break;
			if(a[i][j]=='X') la++;
			else lb++;
		}
		if(la==3) fa++;
		if(lb==3) fb++;
	}
	for(int i=1;i<=3;i++){
		int la=0,lb=0;
		for(int j=1;j<=3;j++){
			if(a[j][i]=='.'||(la&&lb)) break;
			if(a[j][i]=='X') la++;
			else lb++;
		}
		if(la==3) fa++;
		if(lb==3) fb++;
	}
	if(a[1][1]=='X'&&a[2][2]=='X'&&a[3][3]=='X') fa++;
	if(a[1][1]=='0'&&a[2][2]=='0'&&a[3][3]=='0') fb++;
	if(a[1][3]=='X'&&a[2][2]=='X'&&a[3][1]=='X') fa++;
	if(a[1][3]=='0'&&a[2][2]=='0'&&a[3][1]=='0') fb++;
	if(fa+fb>1){
		cout<<"illegal"<<endl;
		return 0;
	}
	if(fa){
		cout<<"the first player won"<<endl;
		return 0; 
	}
	if(fb){
		cout<<"the second player won"<<endl;
		return 0; 
	}
	if(b['.']==0){
		cout<<"draw"<<endl;
		return 0;
	}
	if(b['X']>b['0']) cout<<"second"<<endl;
	else cout<<"first"<<endl;
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...