图-:
0, 0, 0, 0, 0, 0, 0, 0 , 0, 0
0, 8, 0, 0, 0, 0, 0, 0 , 0, 0
0, 0, 0, 0, 0, 0, 0, 0 , 0, 0
0, 0, 0, 0, 0, 0, 0, 0 , 0, 0
0, 0, 0, 0, 0, 0, 0, 0 , 0, 0
0, 0, 0, 0, 0, 0, 0, 0 , 0, 0
0, 0, 0, 0, 0, 0, 0, 0 , 0, 0
0, 0, 0, 0, 0, 0, 0, 0 , 9, 0
0, 0, 0, 0, 0, 0, 0, 0 , 0, 0
这是一张连连看的地图,假设标8和9的部分是两张相同的牌。
在数组矩阵中,0表示没有牌,大于1表示有牌。至于是什么牌,那是随机的了。
不要告诉我,你说的“布局算法”是指怎么把牌刚刚好放上去,那个无所谓什么
算法,你只要首先在地图数组中准备好偶数个1,在布牌时保证每种牌是偶数个
(不同种类的牌用大于1的数来表示),相应地放入每个1的位置上就可以了。
一、计算地图上这两张牌能不能连通(当然能了,哈哈)。
这是连连看寻路算法的第一步。
先定义一下两张牌能连的充分条件:
1.两张牌是同一种。
2.两张牌之间有一条全是0的路可以连通。
3.这一条路不能有两个以上的拐角(corner)
满足这三个条件,就可以认为这两张牌是可以连的。
首先,我们依据前两个条件来完成一个基本的寻路算法。
我们的目的是从8到9找出一条可以连通的路来。
那么很明显从8到9的第一步一其有四个方向可以选择,分别是东,南,西,北
(e, s, w, n以中国地图