一个俄罗斯方块扩展游戏的消除算法问题
整个游戏的游戏界面数据保存在一个BYTE map[M][N]数组里,每一项都可能是不同颜色(姑且用1、2、3等来表示,0表示什么也没有)。如当前的游戏界面内容为:
{0,0,0,0,0,0,
0,0,0,0,0,0,
0,0,0,0,0,0,
0,1,1,2,3,1,
1,1,2,3,1,3,
2,1,2,2,2,3}
问题是:现在要把当前界面上,竖方向和横方向的有三个或三个以上相连的且颜色相同的项消去,消去后要把所消去项的上面部分下移。
如上述的游戏界面则变为:
{0,0,0,0,0,0,
0,0,0,0,0,0,
0,0,0,0,0,0,
0,0,0,0,0,1,
1,0,1,2,3,3,
2,0,2,3,1,3}