IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 实验7-2-10 简易连连看 -> 正文阅读

[C++知识库]实验7-2-10 简易连连看

题目

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

输入格式及样例

格式

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

样例

2
I T I T
A B A B
A A A A
C D C D
9
1 1 1 3
1 2 1 4
2 1 2 3
2 2 2 4
3 1 3 2
3 3 3 4
4 1 4 3
4 2 4 3
4 2 4 4

输出格式及样例

格式

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

样例

在这里插入图片描述

参考代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void Print(int n,char**arr);
int main() {
	int n,i,j;
	int fail = 0,secc=0;
	scanf("%d", &n);
	char** arr = (char**)malloc(sizeof(char*) * 2 * n);
	for (i = 1; i <= 2 * n; i++)
		arr[i] = (char*)malloc(sizeof(char) * 2 * n);
	for (i = 1; i <= 2 * n; i++)
		for (j = 1; j <= 2 * n; j++) {
			scanf("%c", &arr[i][j]);
			if (arr[i][j] == ' ' || arr[i][j] == '\n')
				j--;
		}
			
	int k;
	scanf("%d", &k);
	int** brr = (int**)malloc(sizeof(int*) * k);
	for (i = 1; i <= k; i++)
		brr[i] = (int*)malloc(sizeof(int) * 4);
	for (i = 1; i <= k; i++)
		for (j = 1; j <= 4; j++)
			scanf("%d", &brr[i][j]);
	for (i = 1; i <= k; i++) {
		char x, y;
		int x1, y1, x2, y2;
		x1 = brr[i][1];
		y1 = brr[i][2];
		x2 = brr[i][3];
		y2 = brr[i][4];
		x = arr[x1][y1];
		y = arr[x2][y2];
		//printf("%c %c\n",x ,y);
		if (x == y) {
			arr[x1][y1] = '*';
			arr[x2][y2] = '*';
			secc++;
			int m = (2*n * 2*n) / 2;
			if (secc == m&& n * n % 2 == 0) {
				printf("Congratulation!\n");
				exit(0);
			}
			Print(n,arr);
			//printf("\n");
			
		}
		else {
			printf("Uh-oh\n");
			fail++;
			if (fail == 3) {
				printf("Game Over\n");
				exit(0);
			}
		}
		//printf("%c %c\n", x, y);
		/*if (arr[(brr[i][1])][(brr[i][2])] == arr[(brr[i][3])][(brr[i][4])]) {
			arr[(brr[i][1])][(brr[i][2])] = '*';
			arr[(brr[i][3])][(brr[i][4])] = '*';

			}*/
		
	}
	
	return 0;
}

//-----------function
void Print(int n,char**arr) {
	/*char** arr = (char**)malloc(sizeof(char*) * 2 * n);
	for (int i = 1; i < 2 * n; i++)
		arr[i] = (char*)malloc(sizeof(char) * 2 * n);*/
	for (int i = 1; i <= 2 * n; i++) {
		printf("%c", arr[i][1]);
		for (int j = 2; j <= 2 * n; j++) {
			printf(" %c", arr[i][j]);
		}
		printf("\n");
	}

}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 10:38:51  更:2021-09-07 10:40:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:25:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码