>>连连看
先来试一试吧
flash版(鼠标点一点吧,发现bug截图发给作者)
连连看
html版(鼠标点一点吧,发现bug截图发给作者)
第1关
剩余时间:100秒
>>原理
连连看游戏规则都很熟悉了:点击两个图块,如果两个图块图案相同并且连接线不多于3根直线,就可以成功将图案消除。
连连看制作中的难点:
1、连连看游戏不一定有解,比如一个m*n的连连看(假设m < n),如果图块种类大于等于n,随机打乱之后不一定有解,即时一开始能有可连接的图块,玩家不同的操作也会出现不同的结果。(数学理论作者不懂,如果哪位有关于这方面的数学理论,麻烦告诉作者)
2、连连看中的图块必须是成对出现的。看似废话,其实真正用代码实现时,确实是个问题。首先要保证总数是个偶数,也就是说m和n必须至少有一个是偶数,比如要是3*3的,总共9个方块,肯定无解了(把中间的图块换成自己的logo不参与游戏,也是不错的选择);然后要保证创建的图块都是成对出现的。
3、判断两个图块是否可连接。这算是连连看中的核心算法了。具体实现:首先判断两个图块图案是否相同(创建时已将相同图案的图块设置一个相同的id);然后判断是否可以直接连接;再判断一个拐点是否可以连接;最后判断2两个拐点是否可以连接。具体实现参见js源码。
如果每一关都提前设计好了,保存成数组 ,也可以实现,只是随机性差点。
目前常用的方法是随机生成地图,玩的过程中如果发现无解,再随机打乱。