• 数组-12. 简易连连看


    数组-12. 简易连连看(20)

    时间限制
    400 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    陈建海(浙江大学)

    本题要求实现一个简易连连看游戏模拟程序。

    给定一个2Nx2N的方阵网格游戏盘面,每个格子中放置一些符号。这些符号一定是成对出现的,同一个符号可能不止一对。程序读入玩家给出的一对位置(x1, y1)、(x2, y2),判断这两个位置上的符号是否匹配。如果匹配成功,则将两个符号消为“*”并输出消去后的盘面;否则输出“Uh-oh”。若匹配错误达到3次,则输出“Game Over”并结束游戏。或者当全部符号匹配成功,则输出“Congratulations!”,然后结束游戏。

    输入格式:

    输入在一行中给一个正整数N(<5)。随后2N行,每行2N个大写英文字母(其间以1个空格分隔),表示游戏盘面。盘面之后给出一个正整数K,随后K行,每行按照格式“x1 y1 x2 y2”给出一个玩家的输入。注意格子的行、列编号是从1到2N。

    输出格式:

    根据玩家的每一步输入,输出相应的结果。输出盘面时注意,每行字符间以1个空格分隔,行末不得有多余空格。

    输入样例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
    
    输出样例1:
    * 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
     1 #include<stdio.h>
     2 #include<math.h>
     3 #include<stdlib.h>
     4 #include<string.h>
     5 int main()
     6 {
     7     int n, t = 0, f = 0, i, j;
     8     char a[20][20];
     9     scanf("%d", &n);
    10     getchar();
    11     for(i = 0; i < 2*n; i++)
    12     {
    13         scanf("%c", &a[i][0]);
    14         for(j = 1; j < 2*n; j++)
    15             scanf(" %c", &a[i][j]);
    16         getchar();
    17     }
    18     int k, l, x1, y1, x2, y2, flag = 0;
    19     scanf("%d", &k);
    20     for(i = 0; i < k; i++)
    21     {
    22         scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
    23         if(flag)
    24         {
    25             printf("Game Over
    ");
    26             break;
    27         }
    28         else if(a[x1-1][y1-1] == a[x2-1][y2-1] && a[x1-1][y1-1] != '*')
    29         {
    30             t++;
    31             if(t == 2*n*n)
    32             {
    33                 printf("Congratulations!
    ");
    34                 break;
    35             }
    36             else
    37             {
    38                 a[x1-1][y1-1] = a[x2-1][y2-1] = '*';
    39                 for(j = 0; j < 2*n; j++)
    40                 {
    41                     printf("%c", a[j][0]);
    42                     for(l = 1; l < 2*n; l++)
    43                         printf(" %c", a[j][l]);
    44                     printf("
    ");
    45                 }
    46             }
    47         }
    48         else
    49         {
    50             f++;
    51             printf("Uh-oh
    ");
    52             if(f == 3)
    53                 flag = 1;
    54         }
    55     }
    56 
    57     return 0;
    58 }
  • 相关阅读:
    Word Frequency
    House Robber(动态规划)
    链表的排序 时间复杂度O(nlogn)
    gdb调试(转)
    c实现的trim函数
    c实现的trim函数
    mac下安装pyQt4
    哈夫曼编码详解
    IOS7--javascriptcore中jscontext使用要注意的一点
    Docker mysql 连接 “The server requested authentication method unknown to the clien”错误
  • 原文地址:https://www.cnblogs.com/yomman/p/4239089.html
Copyright © 2020-2023  润新知