知识点
1.并且两个地方都不是 * ,条件不要漏掉
if(table[x1][y1]==table[x2][y2]&&table[x1][y1]!='*'&&table[x2][y2]!='*'){
2.Congratulations!的条件和摆放的位置(摆在输出之前)
flag来计算*多少个了
庆祝完记得return 0;
int flag=0;
flag+=2;
if(flag==4*n*n){ //!!!成立的条件
cout<<"Congratulations!\n"; return 0;
}
代码
#include<iostream>
#include<string.h>
using namespace std;
int n,m,x1,y1,x2,y2,cnt=0,flag=0;
char table[11][11];
int main(){
cin>>n;
for(int i=1;i<=n*2;i++){
for(int j=1;j<=n*2;j++){
cin>>table[i][j];
}
getchar();
}
cin>>m;
while(m--){
cin>>x1>>y1>>x2>>y2;
if(table[x1][y1]==table[x2][y2]&&table[x1][y1]!='*'&&table[x2][y2]!='*'){ //!!!!
table[x1][y1]=table[x2][y2]='*';
flag+=2;
if(flag==4*n*n){ //!!!成立的条件
cout<<"Congratulations!\n"; return 0;
}
for(int i=1;i<=n*2;i++){
for(int j=1;j<n*2;j++){
cout<<table[i][j]<<' ';
}
cout<<table[i][n*2]<<endl;
}
}else{
cout<<"Uh-oh\n";
cnt++;
}
if(cnt==3){
cout<<"Game Over\n";
return 0;
}
}
return 0;
}
输入样例1:
2
I T I T
Y T I A
T A T Y
I K K T
11
1 1 1 3
4 2 4 3
3 1 4 2
2 2 1 2
3 1 2 4
4 4 3 1
2 1 3 4
3 3 1 4
4 1 2 3
2 4 3 2
1 1 2 2
输出样例
* T * T
Y T I A
T A T Y
I K K T
* T * T
Y T I A
T A T Y
I * * T
Uh-oh
* * * T
Y * I A
T A T Y
I * * T
Uh-oh
* * * T
Y * I A
* A T Y
I * * *
* * * T
* * I A
* A T *
I * * *
* * * *
* * I A
* A * *
I * * *
* * * *
* * * A
* A * *
* * * *
Congratulations!
输入样例2:
2
I T I T
Y T I A
T A T Y
I K K T
5
1 1 4 4
1 1 2 3
1 1 2 3
2 2 4 1
2 2 3 3
输出样例2:
Uh-oh
* T I T
Y T * A
T A T Y
I K K T
Uh-oh
Uh-oh
Game Over