昨天玩了连连看。挺好玩的。然后做了一个功能实现暂时没有漂亮界面的连连看。下面我就用通俗的语言讲一下这个算法思想。
工具/原料
VisualStudio6.0
方法/步骤
1
连连看玩法:最多有两个拐角
2
连连看算法:水平扫描和垂直扫描。 先看水平的,首先,要找到棋子往左右可以延伸的范围,这里的延伸是指左右有多少空的位置;然后,计算水平坐标上两个棋子延伸出来的公共部分;最后,找公共的水平坐标里有没有可以“垂直直连”的。
3
接着再看垂直扫描:
4
只要两个图片能够在伸展后的位置能够直接连通的话,说明可以消去o了由于木有界面暂时可以按照下面这张图片想象
5
下面是游戏开始时候的界面:相同的数字代表同种颜色的小球。0代表空位置。0 代表是空的道路,木有图片大于1的相同的数字表示相同的图片游戏规则:1分别输入选择的两张图片的横纵坐标2行和列从0开始数数3由于是随机生成的矩阵,所以每次运行生成不同的界面 C 源码:
6
下面是C语言具体实现的代码。
7
接着上面的。
上一篇:如何挑选一副太阳镜?
下一篇:如何用串珠或手链来教宝宝玩出乐趣