数组-12. 简易连连看

 1 /*
 2  * Main.c
 3  * E12-数组-12. 简易连连看
 4  *  Created on: 2014年8月22日
 5  *      Author: Boomkeeper
 6  ********测试通过*********
 7  */
 8 
 9 #include <stdio.h>
10 #include <stdlib.h>
11 
12 int main(void){
13 
14     int x1,y1,x2,y2;
15     int i,j,k;
16     int N;//题目中的N
17     char array[10][10];
18     int count=0;//计次匹配错误的次数
19     int m=0;//玩家输入的次数
20     int letterLeft;//盘面中剩余的字母个数,当减少到0时,则胜利
21 
22     scanf("%i",&N);
23     getchar();
24 
25     letterLeft=2*N*2*N;
26 
27     for(i=0;i<(2*N);i++)
28         for(j=0;j<(2*N);j++){
29             array[i][j]=getchar();
30             getchar();
31         }
32 
33     scanf("%d",&m);
34     getchar();
35     
36     for(i=0;i<m;i++){
37         scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
38 
39         //匹配成功,则将两个符号消为“*”
40         if((array[x1-1][y1-1]==array[x2-1][y2-1]) &&
41                 (array[x1-1][y1-1]<='Z' && array[x1-1][y1-1]>='A')){
42             array[x1-1][y1-1]='*';
43             array[x2-1][y2-1]='*';
44             letterLeft=letterLeft-2;
45 
46         } else{
47             printf("Uh-oh
");
48             count++;
49             continue;
50         }
51         //若匹配错误达到3次,则输出“Game Over”并结束游戏
52         if(count==3){
53             printf("Game Over
");
54             exit(0);
55         }
56         //当全部符号匹配成功,则输出“Congratulations!”,然后结束游戏
57         if(letterLeft==0){
58             printf("Congratulations!
");
59             exit(0);
60         }
61         //输出盘面
62         for(j=0;j<2*N;j++){
63             for(k=0;k<2*N-1;k++)
64                 printf("%c ",array[j][k]);
65             printf("%c
",array[j][2*N-1]);
66         }
67 
68     }
69 
70     return 0;
71 }

刚看到这个题目头都大了,简直就是一篇短文阅读理解,那么多字...一下子就没了耐心。

但最后发现,它比“数组-11. 猴子选大王”还是简单多了,因为没有涉及很高深的数学问题,只要耐住性子,还是做了出来。

只是读题目就读了三四遍,测试了几十遍...这要是在考试中...%>_<%   %>_<%

题目链接:

http://pat.zju.edu.cn/contests/basic-programming/%E6%95%B0%E7%BB%84-12

.

原文地址:https://www.cnblogs.com/boomkeeper/p/E12.html