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++;
			}

		}
	}
}
相关推荐
上海云盾王帅2 小时前
2026游戏APP安全发布指南:告别DDoS恐慌,构建“免疫级”防护体系
安全·游戏·ddos
Mem0rin2 小时前
[Java]排序
java·算法·排序算法
qeen872 小时前
【算法笔记】差分与经典例题解析
c语言·c++·笔记·学习·算法·差分
kronos.荒2 小时前
动态规划——整数拆分(python)
python·算法·动态规划
椰羊~王小美2 小时前
C、Java、Go、Python 对比
java·c语言
cici158742 小时前
基于Koopman模型预测控制的非线性流控制数据驱动框架
算法
6Hzlia2 小时前
【Hot 100 刷题计划】 LeetCode 416. 分割等和子集 | C++ 0-1背包 1D空间极致优化
c++·算法·leetcode
穿条秋裤到处跑2 小时前
每日一道leetcode(2026.04.21):执行交换操作后的最小汉明距离
java·算法·leetcode
疯狂打码的少年2 小时前
内存管理三雄对决:C、Java、Python 的堆区、栈区、常量区、静态区深度解析
java·c语言·python