连连看游戏算法!!!
哪位大侠给个连连看的提示算法,给个思路也行。。。。。谢谢了!!!
[解决办法]
做图像匹配比较,想简单点就直接逐点分RGB比较像素颜色值,差值在一定范围就认为颜色相同;
注意,如果取图不能保证精准到1个像素,则需要1到2个像素的抖动处理。
[解决办法]
生成一个N行 N*N/2列的矩阵M。在第i行中,有某个图片,则在相应的列上值为该图片在方阵中的列数,否则为0。当选中一个图片时,对应生成一个检索列向量b,右乘矩阵M,得出一个新的列向量,这个列向量就代表元素在方阵A中的位置。简单举个例子:N=4;4*4的方阵A,则有8张不同的图片p(i) 1<=i<=8;结合A生成矩阵M: p1 p2 p3 p4 p5 p6 p7 p8\___________________________1| 0 1 0 2 0 0 3 42| 3 0 0 0 0 1 2 43| 0 1 2 4 3 0 0 04| 2 0 3 0 1 4 0 0则:每一行当中1~N每个数字出现且仅出现一次(方阵的列数) 每一列当中只有两个不为0的数字(两两匹配)比如:点中A中的第3,2图片(3行2列),则得知是图片p3,那么生成检索向量b=(0,0,1,0,0,0,0,0)T(T表示转置)然后:M*b=(0,0,0,3)T;那么得出匹配的另一图片位于第4行第3列。其中M*b的结果向量中,非零数字所在行数,代表匹配图片在A中的行数,非零数字本身代表匹配图片在A中的列数。因此,你要实现矩阵M的生成,检索向量的生成,以及矩阵相乘三大部分。大致思想就是如此!个人看法,如有不妥,请指教,拍砖!