当前位置: 首页 > news >正文

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

题目:

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

给定一个2N×2N的方阵网格游戏盘面,每个格子中放置一些符号。这些符号一定是成对出现的,同一个符号可能不止一对。程序读入玩家给出的一对位置(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

 解:

#include<stdio.h>
int print(char a[10][10],int n){for(int i=1;i<=2*n;i++){for(int j=1;j<=2*n;j++){if(j==1){printf("%c",a[i][j]);}else{printf(" %c",a[i][j]);}}printf("\n");}
}int main(){int n,i,j,k,count_s=0,count_e=0;scanf("%d",&n);char a[10][10];getchar();for(i=1;i<=2*n;i++){for(j=1;j<=2*n;j++){scanf("%c ",&a[i][j]);}}scanf("%d",&k);for(i=0;i<k;i++){int x1,y1,x2,y2;scanf("%d %d %d %d",&x1,&y1,&x2,&y2);if(a[x1][y1]==a[x2][y2] && a[x1][y1]!='*'){a[x1][y1]='*';a[x2][y2]='*';count_s++;if(count_s==2*n*n){break;}print(a,n);}else{printf("Uh-oh\n");count_e++;if(count_e==3){printf("Game Over");return 0;}}}if(count_s==2*n*n){printf("Congratulations!");}return 0;
}

相关文章:

  • 【Docker】在 Ubuntu 上安装 Docker 的步骤
  • 心脏滴血漏洞详解(CVE-2014-0160)
  • ubuntu 如何使用阿里云盘
  • 基于华为ensp的企业网络规划(新版)
  • mosquitto - 笔记
  • 在Ubuntu20.04(原为cuda12.0, gcc9.几版本和g++9.几版本)下先安装cuda9.0后再配置gcc-5环境
  • Linux 常用命令 chattr
  • 素数问题 python
  • 就业班 第二阶段 2401--3.19 day4 主从复制
  • 初级爬虫实战——哥伦比亚大学新闻
  • 开源的OCR工具基本使用:PaddleOCR/Tesseract/CnOCR
  • JavaScript 权威指南第七版(GPT 重译)(二)
  • 【Qt5】QVariant
  • 力扣Lc18--- 168. Excel表列名称(java版)-2024年3月19日
  • 如何使用 Elasticsearch 作为向量数据库
  • idea + plantuml 画流程图
  • isset在php5.6-和php7.0+的一些差异
  • Java超时控制的实现
  • pdf文件如何在线转换为jpg图片
  • SQLServer之创建数据库快照
  • TCP拥塞控制
  • Unix命令
  • 编写符合Python风格的对象
  • 飞驰在Mesos的涡轮引擎上
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 前端设计模式
  • 前端之Sass/Scss实战笔记
  • 前嗅ForeSpider采集配置界面介绍
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 微服务入门【系列视频课程】
  • 微信公众号开发小记——5.python微信红包
  • 问题之ssh中Host key verification failed的解决
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • ​HTTP与HTTPS:网络通信的安全卫士
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四)Linux Shell编程——输入输出重定向
  • (五)Python 垃圾回收机制
  • (转)C#调用WebService 基础
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .axf 转化 .bin文件 的方法
  • .net core使用ef 6
  • .net mvc 获取url中controller和action
  • .net 程序发生了一个不可捕获的异常
  • .NET 设计一套高性能的弱事件机制
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • :not(:first-child)和:not(:last-child)的用法
  • ??eclipse的安装配置问题!??
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [@Controller]4 详解@ModelAttribute
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [android] 切换界面的通用处理
  • [Angular] 笔记 6:ngStyle