/// 题目有一个坑点匹配的字符不能为 ‘*’
#include <bits/stdc++.h>using namespace std;char a[10][10];///存放字符int x1[50],x2[50],y2[50];///每次用户输入的两个坐标int y[50];int main(){ int n; scanf("%d%*c",&n);///%*c 吃回车 for(int i=1; i<=n*2; i++) { for(int j=1; j<=n*2; j++) { scanf("%c%*c",&a[i][j]);///注意空格和回车的处理 } } int m;///进行m次询问 cin>>m; int count=0;///失误的次数 for(int i=1; i<=m; i++)///输入并保存用户的操作 { scanf("%d %d %d %d",&x1[i],&y[i],&x2[i],&y2[i]); } for(int i=1; i<=m; i++) { if( a[ x1[i] ][ y[i] ]==a[ x2[i] ][ y2[i] ] && a[ x1[i] ][ y[i] ]!='*' )///能够消除字符 { a[ x1[i] ][ y[i] ]='*';///消除并化为 * a[ x2[i] ][ y2[i]]='*'; int flag2=0;///标记是否全被消除 for(int i=1; i<=2*n; i++)///遍历全部数组查看是否全部消除 { for(int j=1; j<=2*n; j++) { if(a[i][j]!='*') { flag2++; break; } } if(flag2) break; } if(flag2==0)///全部消除 退出循环 { PRintf("Congratulations!/n"); break; } for(int i=1; i<=n*2; i++)/// 如果没有退出循环输出现有的序列 { for(int j=1; j<=n*2; j++) { printf("%c%c",a[i][j],j==n*2?'/n':' '); } } } else///不能被消除 { count++; printf("Uh-oh/n"); } if(count>=3)///死亡 { printf("Game Over/n"); break; } } return 0;}新闻热点
疑难解答