论坛首页 移动开发技术论坛

我来来说说手机开发连连看的地图布局和连连看的算法

浏览 5483 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-11-25  
eyes 们大家好:
              这几天闲着没事做了一个手机版得连连看,做的很粗糙,不过实现了基本的功能。在做连连看看的这几天感触颇深。下面就写写我做连连看的感受。在项目中的算法都是我自己想的,可能那里写的不是很好。希望得到大家的点评。
      
      首先来说说地图的布局吧。地图我是用一个二维的数组实现的。下面来说说如何来生成这个二维的数组。假如入你的是6*8的大小, 那么最好选择24张不一样的图片(当然这个图片不一定是24张不一样的)为了保证生成的二维数组里面的图片是成双成对的,我声明了一个list list 的大小也是6*8 然后在生成的这个list 的时候两个两个 生成,这样就保证这个list 里面的图片一定是成双成对的。 这个时候就要给 声明的二维数组赋值了,在赋值的时候 要随即取 list 里面的值 ,每取出一个就删除一个,让这个随即数始终在0到list的大小之间。 这样就生成了一个一定成双成对的出现的二维数组了地图了。
       
      上面是我生成地图布局的方法。
      

      下面来说说这个连连看的算法。
      首先是横向计算看看两个图片是否可以相连。(这个中间的过程大家看我的代码吧!代码中间有注释)
      其次是纵向计算看看两个图片是否可以相连。

      一个拐角可以让两张图片的相连的其实也很简单,当两个图片可以用一个拐角相连的时候那么这两个图片刚好可以画成一个矩形,而这两个图片的刚好位于矩形的两个对角。
      这个时候你只要把这个矩形对折一下(当然是你想想中的)会得到这个矩形的另外两个对角。只要这两个对角其中的一个在横向的方向和纵向的方向 能和你选中的这两个图片相连,就代表你选中的两个图片在一个拐角中是可以联通的。

     两个拐角的其实的思路也很简单,就是那这其中一个 在他的周围找到一个可以和另外一个只有一个拐角相连,如果有这么一个位置就代表 两个图片通过两个拐角就可以相连。

    其实我的思路就是,不管是1个拐角还是两个拐角最终都会转化成 横向相连或者纵向相连。
      以上,是我的思路。 大家谁有更好的思路。请说下。方便我们大家一起了解。有什么不对的地方请大家说出来。

   



       


  • XYQ.rar (273 KB)
  • 下载次数: 287
   发表时间:2011-11-25  
在代码中都有一定的注释,那个位同学如果看到不明白的地方可以问。咱们一起研究。
0 请登录后投票
   发表时间:2011-11-30  
下下来 自己研究下 有问题和你交流
0 请登录后投票
   发表时间:2011-12-01   最后修改:2011-12-01
不知是否有寻路算法在里面,好奇的问问,比如A*
0 请登录后投票
   发表时间:2011-12-02  
gigi_ly180 写道
不知是否有寻路算法在里面,好奇的问问,比如A*

其实连连看本身 就牵涉到寻路,只不过看看你怎么寻路了。至于算法 这个也是我自己想的。感觉就是大事化小,小事化了。 的思路。
0 请登录后投票
   发表时间:2011-12-02  
其实,刚做这个的时候,我也很迷茫,看了大家的很多算法,感觉让人很难理解(也可能是我的理解能力有限)。所以就想了在复杂的东西最终肯定可以通过别的方式进行转化,或者分解的方式。 把复杂的东西分解成一小块,一小快的东西,然后慢慢攻破最后你也会发现,啊原来还可以这样去做。
0 请登录后投票
   发表时间:2011-12-02  
看了,写的很好呀,就这你还说自己新手。那我情何以堪。呵呵
0 请登录后投票
   发表时间:2011-12-12  
我也写了一个连连看算法,正准备在手机上图形化。该算法支持在无法找到两图联通的情况下自动重置矩阵,支持自动提示。其中找到两图是否连通应用了图的BFS+记录的算法。不过刚学android,感觉图形化好费劲啊
1 请登录后投票
   发表时间:2011-12-19  
leon_a 写道
我也写了一个连连看算法,正准备在手机上图形化。该算法支持在无法找到两图联通的情况下自动重置矩阵,支持自动提示。其中找到两图是否连通应用了图的BFS+记录的算法。不过刚学android,感觉图形化好费劲啊


在我的上面的描述中也讲述了如何布局地图。你可以参考下。咱们可以交流下。
0 请登录后投票
   发表时间:2011-12-20  
图片布局好难哈,pointer图片是整张。如何取得里面一个图标呢?
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics