议论连连看的最佳思路和算法

讨论连连看的最佳思路和算法
需求实现。对于A,B两个图标需要用Compare(*)来进行判断是否是相同。
给出最简单高效的代码,逻辑判断可以忽略。以下是我想到的几个实现模式。表达有些不清。因为引擎是单线程的,并且UI绘图有一些时滞,所以总会有BUG。BUG表现在ABA,即对AB进行判断后,AB消失,但未进行绘图。

1.采取队列的方式录入A,B,while进行循环。队列为单例。
2.Compare(*)类采取单例,内有tmpA,tmpB,储存A,B,对A,B进行判断后置空指针
3.对A,B进行计数。判断点击了几次。

------解决思路----------------------
用二维数组arr1[MAX_X][MAX_Y]
0表示该位置没有图标,1-n表示你的n种不同的图标

鼠标点击的两个位置(x1,y1)(x2,y2)
arr1[x1][y1] == arr1[x2][y2] 则可以消除,消除就是置0
arr1[x1][y1] = 0
arr1[x2][y2] = 0

用双份二维数组arr1,arr2,
逐个对比每个位置的值是否改变,改变则重绘该位置
------解决思路----------------------
在"日"字格线.   日字的每个点为一个图, 线为连接线.  只要点击的两个相同项中有能走通的连接线, 即可消除.