社区讨论
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 条回复,欢迎继续交流。
正在加载回复...