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\n"); 48 count++; 49 continue; 50 } 51 //若匹配错误达到3次,则输出“Game Over”并结束游戏 52 if(count==3){ 53 printf("Game Over\n"); 54 exit(0); 55 } 56 //当全部符号匹配成功,则输出“Congratulations!”,然后结束游戏 57 if(letterLeft==0){ 58 printf("Congratulations!\n"); 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\n",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
.
时间: 2024-10-01 04:58:20