当前位置:网站首页>Simple continuous viewing PTA

Simple continuous viewing PTA

2022-07-06 20:38:00 Sophomore to major

Interesting topic , There are many input pits in front , Just pay attention .

This problem requires the realization of a simple game simulation program .

Given a 2N×2N Square grid game panel , Place some symbols in each grid . These symbols must appear in pairs , There may be more than one pair of the same symbol . The program reads in a pair of positions given by the player (x1​,y1​)、(x2​,y2​), Judge whether the symbols in these two positions match . If the match is successful , Then eliminate the two symbols to “*” And output the erased disk surface ; Otherwise output “Uh-oh”. If the matching error reaches 3 Time , The output “Game Over” And end the game . Or when all symbols match successfully , The output “Congratulations!”, And end the game .

Input format :

Enter a positive integer on a line N(<5). And then 2N That's ok , Each row 2N Capital letters ( In the meantime 1 Space separation ), Indicates the game disk . A positive integer is given after the disk surface K, And then K That's ok , Each line follows the format “x1​ y1​ x2​ y2​” Give a player's input . Pay attention to the lines in the grid 、 Column number is from 1 To 2N.

Output format :

According to each step of the player, enter , Output the corresponding result . When outputting the disk surface, pay attention to , The characters in each line are separated by 1 Space separation , There must be no extra space at the end of the line .

sample input 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

sample output 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!

sample input 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

sample output 2:

Uh-oh
* T I T
Y T * A
T A T Y
I K K T
Uh-oh
Uh-oh
Game Over
#include <stdio.h>
int main() {
    int n;
    char arr[100][100];
    scanf("%d", &n);
    getchar();//\n
    for (int i = 0; i < 2 * n; i++) {// Be careful with this input 
        scanf("%c", &arr[i][0]);
        for (int j = 1; j < 2 * n; j++) {
            scanf(" %c", &arr[i][j]);
        }
        getchar();
    }
    int k, x1, y1, x2, y2;
    scanf("%d", &k);
    int flag = 1, ctn = 0, flag2;//flag Judge first ,flag2 Judge whether it is finished 
    for (int i = 0; i < k; i++) {
        flag2=0;
        scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
        if (arr[x1 - 1][y1 - 1] == arr[x2 - 1][y2 - 1]&&arr[x1-1][y1-1]!='*'&&arr[x2-1][y2-1]!='*') {
            arr[x1 - 1][y1 - 1] = arr[x2 - 1][y2 - 1] = '*';
        }
        else {
                ctn++;
                printf("Uh-oh\n");
                if (ctn == 3) { printf("Game Over"); break; }
                continue;
            }
            for (int i = 0; i < 2 * n; i++) {
                for (int j = 0; j < 2 * n; j++) {
                    if (arr[i][j] != '*') {
                        flag2 = 1; break;
                    }
                }
            }
            if (flag2 == 0) {
                printf("Congratulations!");
                break;
            }
            if (flag2) {
                for (int i = 0; i < 2 * n; i++) {
                    flag = 1;
                    for (int j = 0; j < 2 * n; j++) {
                        if (flag) { flag = 0; printf("%c", arr[i][j]); }
                        else {
                            printf(" %c", arr[i][j]);
                        }
                    }
                    printf("\n");
                }
            }
    }
    return 0;
}

 

原网站

版权声明
本文为[Sophomore to major]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202131154419328.html