C语言实现消消乐游戏(6)

6.实现方块的还原和匹配

(1)如果交换后没有实现三个及以上的元素,那么交换的元素自动还原

cpp 复制代码
void restore() {
	//发生移动后,而且这个单向移动已经结束
	if (isSwap && !isMoving)
	{
		//如果没有匹配到三个以上相同的元素,还原
		int count = 0;
		for (int i = 1; i <= ROW; i++) {
			for (int j = 1; j <= COL; j++) {
				count += map[i][j].match;
			}
		}

		if (count==0)
		{
			exchange(posX1, posY1, posX2, posY2);

		}
		isSwap = false;

	}
	
}

(2)消除检测,检查所有可以消除的方块

cpp 复制代码
void cheek() {
	for (int i = 1; i <= ROW; i++) {
		for (int j = 1; j <= COL; j++) {
			if (map[i][j].type == map[i + 1][j].type && map[i][j].type == map[i - 1][j].type) {
				for (int k = -1; k <= 1; k++)
					map[i + k][j].match++;
			}
			if (map[i][j].type == map[i][j-1].type && map[i][j].type == map[i][j+1].type) {
				for (int k = -1; k <= 1; k++)
					map[i][j+k].match++;
			}

		}
	}
}
相关推荐
xx~t6 小时前
嵌入式——Linux软件编程——网络1
linux·c语言·网络·vscode·网络协议
小白羊丨6 小时前
如何诊断 Prompt 模板导致的效果下降?
人工智能·算法·prompt
OPEN-F7 小时前
C++11/14新特性精讲:移动语义与智能指针实战
开发语言·c++·算法
lisin-lee-cooper7 小时前
【leetcode658】有序数组找出k个最接近x的数
java·数据结构·算法
sunburn-7 小时前
Java堆(Heap)详解与实战教学
java·开发语言·数据结构·ide·算法
智碳能碳管理平台8 小时前
工业能耗台账标准化:能碳管理系统的数据口径怎么设计
算法·能碳管理系统·智碳能碳管理平台·企业能碳管理系统·碳排放核算软件·绿色工厂申报saas·能碳管理平台
带多刺的玫瑰9 小时前
Leecode#15刷题之三数之和
算法·leetcode·职场和发展
羚尔9 小时前
C语言数组
c语言·开发语言
哭泣方源炼蛊9 小时前
并查集进阶 P1(带权并查集,并查集分类)
数据结构·c++·算法·二进制·带权并查集
hkNaruto9 小时前
【游戏】低帧率策略游戏类帧同步保障公平性软件详细设计文档
网络·游戏