实验7-2-10 简易连连看 (20分)

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

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

输入格式:

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

输出格式:

根据玩家的每一步输入,输出相应的结果。输出盘面时注意,每行字符间以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

代码:
#include <stdio.h>
#include <stdlib.h>

int n,k,error,right;
char mp[10][10];
void print() {
    for(int i = 0;i < n * 2;i ++) {
        for(int j = 0;j < n * 2;j ++) {
            putchar(mp[i][j]);
            if(j == n * 2 - 1) putchar(‘\n‘);
            else putchar(‘ ‘);
        }
    }
}
int main() {
    int x1,y1,x2,y2;
    scanf("%d",&n);
    for(int i = 0;i < n * 2;i ++) {
        for(int j = 0;j < n * 2;j ++) {
            getchar();
            mp[i][j] = getchar();
        }
    }
    scanf("%d",&k);
    for(int i = 0;i < k;i ++) {
        scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
        x1 --;y1 --;x2 --;y2 --;
        if(mp[x1][y1] == mp[x2][y2] && mp[x1][y1] != ‘*‘) {
            mp[x1][y1] = mp[x2][y2] = ‘*‘;
            right ++;
            if(right == n * n * 2) {
                printf("Congratulations!\n");
                break;
            }
            print();
        }
        else {
            error ++;
            printf("Uh-oh\n");
            if(error == 3) {
                printf("Game Over\n");
                break;
            }
        }
    }
    return 0;
}

原文地址:https://www.cnblogs.com/8023spz/p/12243231.html

时间: 2024-10-20 15:37:46

实验7-2-10 简易连连看 (20分)的相关文章

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

数组-12. 简易连连看(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈建海(浙江大学) 本题要求实现一个简易连连看游戏模拟程序. 给定一个2Nx2N的方阵网格游戏盘面,每个格子中放置一些符号.这些符号一定是成对出现的,同一个符号可能不止一对.程序读入玩家给出的一对位置(x1, y1).(x2, y2),判断这两个位置上的符号是否匹配.如果匹配成功,则将两个符号消为"*"并输出消去后的盘面:否则输出"

实验10-1 圆形体体积计算器 (20分)

本题要求实现一个常用圆形体体积的计算器.计算公式如下: 球体体积 V=?3??4??πr?3??,其中r是球体半径. 圆柱体体积 V=πr?2??h,其中r是底圆半径,h是高. 圆锥体体积 V=?3??1??πr?2??h,其中r是底圆半径,h是高. 输入格式: 在每次计算之前,要求输出如下界面: 1-Ball 2-Cylinder 3-Cone other-Exit Please enter your command: 然后从标准输入读进一个整数指令. 输出格式: 如果读入的指令是1或2或3,

数组-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 ch

mycat基础实验之主从配置读写分离和分表

mycat实验之主从配置读写分离和分表 架构图: 1.实验环境: vmware虚机3个   (虚机太少了,电脑有点吃力,3个虚机只能达到基本的测试) 系统centos7     (实验是关闭防火墙和selinux做的) mysql版本5.7 mycat版本1.6 虚机名字和ip: mysql1 192.168.211.138 mysql2 192.168.211.139 mysql3 192.168.211.142 mycat安装在mysql1(192.168.211.138) 这台主机须能够解

7-1 抓老鼠啊~亏了还是赚了? (20 分)

7-1 抓老鼠啊~亏了还是赚了? (20 分) 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X).捕鼠夹可重复利用,不计成本,奶酪每块3元. 聪明的老鼠呢?它们每天可能会派出一只老鼠到墙角,看看墙角有啥: ?若什么也没有(X),老鼠们就不高兴了(Unhappy),会有长达一天(也就是第二天)的不高兴期.在不高兴期间,不派出老鼠.不高兴期结束之后,派出老鼠. ?若

7-2 求最大值及其下标 (20 分)

7-2 求最大值及其下标 (20 分) 本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始). 输入格式: 输入在第一行中给出一个正整数n(1<n≤10).第二行输入n个整数,用空格分开. 输出格式: 在一行中输出最大值及最大值的最小下标,中间用一个空格分开. 输入样例: 6 2 8 10 1 9 10 输出样例: 10 2 实验流程 实验代码 #include<stdio.h> int main() { int n,t,i; scanf("%d&qu

PTA-C-4-7 统计某类完全平方数 (20分)

4-7 统计某类完全平方数   (20分) 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144.676等. 函数接口定义: int IsTheNumber ( const int N ); 其中N是用户传入的参数.如果N满足条件,则该函数必须返回1,否则返回0. 裁判测试程序样例: #include <stdio.h> #include <math.h> int IsTheNumber ( const int N ); int ma

PTA 10-排序4 统计工龄 (20分)

题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/721 5-13 统计工龄   (20分) 给定公司NN名员工的工龄,要求按工龄增序输出每个工龄段有多少员工. 输入格式: 输入首先给出正整数NN(\le 10^5≤10?5??),即员工总人数:随后给出NN个整数,即每个员工的工龄,范围在[0, 50]. 输出格式: 按工龄的递增顺序输出每个工龄的员工个数,格式为:"工龄:人数".每项占一行.如果人数为0则不输出该项. 输入样

PTA 邻接表存储图的广度优先遍历(20 分)

6-2 邻接表存储图的广度优先遍历(20 分) 试实现邻接表存储图的广度优先遍历. 函数接口定义: void BFS ( LGraph Graph, Vertex S, void (*Visit)(Vertex) ); 其中LGraph是邻接表存储的图,定义如下: /* 邻接点的定义 */ typedef struct AdjVNode *PtrToAdjVNode; struct AdjVNode{ Vertex AdjV; /* 邻接点下标 */ PtrToAdjVNode Next; /*