简易连连看
/problem-sets/1329402848755699712/problems/1329407074437287937
注释掉的代码是用于调试
map的边界是试出来的,虽然我觉得x边15就行,但题目好像不这么认为
str的长度随便,他只用来刷掉第一行scanf留在缓冲区的那一行
#include<stdio.h>
#include<string.h>
int main(void)
{
char map[9][16]={0},str[100];
int i,j,N,K,x1,x2,y1,y2;int count1=0,count2=0;
scanf("%d",&N);gets(str);
for(i=1;i<=N*2;i++){
gets(map[i]);
}
// for(j=1;j<=N*2;j++)printf("%s\n",&map[j]);
scanf("%d",&K);
for(i=1;i<=K;i++){
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
y1=y1*2-1;
y2=y2*2-1;
// printf("%c %c\n",map[x1][y1-1],map[x2][y2-1]);
if(map[x1][y1-1]==map[x2][y2-1]&&map[x1][y1-1]!='*'&&map[x2][y2-1]!='*'){
map[x1][y1-1]='*',map[x2][y2-1]='*',count2++;
if(count2==N*N*2){printf("Congratulations!");break;}
for(j=1;j<=N*2;j++)printf("%s\n",&map[j]);
}
else {
printf("Uh-oh\n"),count1++;
if(count1==3){printf("Game Over");break;}
}
}
return 0;
}