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

		}
	}
}
相关推荐
To_OC4 小时前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过
javascript·算法·leetcode
金銀銅鐵8 小时前
[Python] 扩展欧几里得算法
python·数学·算法
To_OC10 小时前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了
javascript·算法·leetcode
金銀銅鐵15 小时前
借助 Pygame 探索最大公约数的规律
python·数学·游戏
To_OC1 天前
LC 128 最长连续序列:别上来就排序,O (n) 解法才是这题的灵魂
javascript·算法·leetcode
05Kevin2 天前
lk每日冒险题--数据结构6.27
算法
To_OC2 天前
从一次栈溢出报错说起,我把递归彻底扒明白了
javascript·算法·程序员
千纸鹤安安2 天前
千问Qwen-AgentWorld来了:一个语言模型搞定七大Agent场景,GPT-5.4都输了
算法