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

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

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

(这一题最烦的地方大概就是输出形式没说清楚吧,后来对着样例一点一点调整输出格式)
数组中存储的是字母的ASCII码,而不是字符,所以是int类型

#include<stdio.h>
int main(void)
{int k,n;int i,j;int a[10][10];//足够大的矩阵存储游戏盘面int point[4];//存储输入的位置int line=0,count=0,error=0;//记录用户输入次数,匹配成功次数,匹配错误次数char op='*';int fresh=(int) op;//存储星号,方便消除正确匹配元素scanf("%d",&n);getchar();//消去回车n=2*n+1;for(i=1;i<n;i++){for(j=1;j<n;j++){op=getchar();a[i][j]=(int) op;getchar();//消去空格或回车}}//录入游戏盘面scanf("%d",&k);//录入玩家最大输入次数while(line<k){scanf("%d %d %d %d",&point[0],&point[1],&point[2],&point[3]);//录入玩家输入if(a[point[0]][point[1]]==a[point[2]][point[3]])//检查是否匹配{if(a[point[0]][point[1]]!=fresh)//匹配且未消除{a[point[0]][point[1]]=fresh;a[point[2]][point[3]]=fresh;//消除count++;//匹配正确次数if(count==2*(n-1)){break;}//全部消除直接跳出for(i=1;i<n;i++){printf("%c",a[i][1]);for(j=2;j<n;j++){printf(" %c",a[i][j]);//输出格式为行末没有空格}printf("\n");}//输出游戏盘面}else//已消除(输入位置都是*){printf("Uh-oh\n");//错误提示error++;//匹配错误次数if(error==3){break;}//达到最大错误次数直接跳出}}else//不匹配{printf("Uh-oh\n");//错误提示error++;//匹配错误次数if(error==3){break;}//达到最大错误次数直接跳出}line++;//记录输入次数}if(error==3)//游戏失败界面{printf("Game Over\n");}if(count==2*(n-1))//游戏成功界面{printf("Congratulations!\n");}//未考虑“输入次数已满,未达最大错误次数,且未完成消除”情况,但检测点是可以通过的(没更新的话)return 0;
}

实验7-2-10 简易连连看 (20分)相关推荐

  1. 实验4-1-5 统计素数并求和 (20 分)

    实验4-1-5 统计素数并求和 (20 分) 本题要求统计给定整数M和N区间内素数的个数并对它们求和. 输入格式: 输入在一行中给出两个正整数M和N(1≤M≤N≤500). 输出格式: 在一行中顺序输 ...

  2. 7-10 jmu-c-二进制转10进制 (20分)

    7-10 jmu-c-二进制转10进制 (20分) 输入一组二进制字符,输出其对应的十进制数.当输入回车键时,输入结束.若输入非二进制字符,输出error input! 输入样例1: 11111111 ...

  3. 实验10-1 圆形体体积计算器 (20 分)2021年2月

    实验10-1 圆形体体积计算器 (20 分) 本题要求实现一个常用圆形体体积的计算器. 直接上答案: #include<stdio.h> #define pi 3.14159265358/ ...

  4. 实验4-2-3 pta验证“哥德巴赫猜想” (20分)

    验证"哥德巴赫猜想" (20分) 数学领域著名的"哥德巴赫猜想"的大致意思是:任何一个大于2的偶数总能表示为两个素数之和.比如:24=5+19,其中5和19都是 ...

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

    本题要求实现一个常用圆形体体积的计算器.计算公式如下: 球体体积 V=​(3/4)πr​3,其中r是球体半径. 圆柱体体积 V=πr2h,其中r是底圆半径,h是高. 圆锥体体积 V=(1/3)πr2h ...

  6. 实验8-2-5 判断回文字符串 (20分)

    本题要求编写函数,判断给定的一串字符是否为"回文".所谓"回文"是指顺读和倒读都一样的字符串.如"XYZYX"和"xyzzyx&q ...

  7. 6-1 数据结构实验之排序八:快速排序 (20 分)

    题目描述: 本题要求实现一个快速排序函数. 给定 N ( N<= 100000 ) 个 int 范围内的整数,要求用快速排序对数据进行升序排列. 函数接口定义: void Quick_sort ...

  8. C语言 实验10-1 圆形体体积计算器 (20分)

    课本例题啦,细节稍微有点不同. 友情提示,此题验证一直错误的,建议看一下PI的精度哦(别问我是怎么知道的,一个小时的代价.....) #include<stdio.h> #define P ...

  9. 7-2 简易连连看 (20 分)

    软件学院第十四次训练 205 分 编程题共 9 小题,共计 205 分 剩余时间: 712:22:51 剩余时间: 712:22:51 编程题 7-2 简易连连看 (20 分) 本题要求实现一个简易连 ...

最新文章

  1. html文档定义层标记是,HTML文档定义层的标记是()
  2. UITableView 显示在statusbar 下面
  3. [转]正确配置Linux系统ulimit值的方法
  4. Java消息服务~JMSReplyTo示例
  5. 【搜索-剪枝-偏难】PAT-天梯赛-L3-015. 球队“食物链”
  6. 高亮显示搜索的关键词(二)
  7. 2020 年最牛逼的 10 门编程语言
  8. TCP/IP详解 卷一笔记
  9. python基于大数据的食物推荐系统
  10. 各个版本的IIS之间的区别 IIS1 ~ IIS6
  11. Python3语言详解
  12. 类名+单书名号——泛型,什么是泛型?如何使用泛型
  13. iOS TextField收取键盘的方法
  14. ART世界探险(6) - 流程控制指令
  15. ios系统软件迁移到安卓_苹果一键换机到安卓(苹果安卓一键迁移的软件)
  16. 一文了解 TKG 如何使用 GPU 资源池
  17. 数学建模-对策论模型
  18. sql的简单的增删改查
  19. 中国传统配色网站,你不了解一下吗??
  20. 中国各省人口规模、分性别、年龄、教育程度预测(2010-2100)

热门文章

  1. 文字转语音真人发声软件哪个好?这些实用软件快来收好
  2. 【聊天机器人测评】独立站插件用Tidio还是Zendesk?
  3. 图的深度优先搜索的非递归算法
  4. 【病因】 深入剖析强迫症的病因
  5. C语言实现三子棋(井字棋)小游戏
  6. 达达季报图解:营收20亿 京东增持交易已完成
  7. C语言 http上传图片生成url
  8. python 嵌入式打包【保姆级文图教程】
  9. jupyter notebook之魔法函数
  10. 二叉查找树 (BST)| 删除操作