TC官方合作论坛

 找回密码
 立即注册
查看: 26256|回复: 120

[TC5.0源码] 连连看辅助算法源码(纯图色)

  [复制链接]
发表于 2012-11-23 16:57:16 | 显示全部楼层 |阅读模式
前段时间看到有关连连看算法的介绍很感兴趣,自己研究了下,以TC平台里冷月大师的宠物连连看2.5版为例,用TC做了个出来大家有兴趣的可以研究下,我的这个是辅助.改改代码应该能写出连连看游戏出来.
算法:网上很多介绍的都是什么深度优先搜索和广度优先搜索的算法,因为还没搞懂,所以写不出来.后来看了一篇有关转角的算法,比较好理解.本源码就是按这个这个算法写出来的.可惜那篇贴子我忘了在哪了,今天找了个差不多的说明,看下面:
连连看连接方式的类型:
l
两点直线法
l
三点直角折线法
l
四点方形折线法
l
四点梯形折线法
下面对上面四种类型进行细致划分讲解:
1.
两点直线法的连接类型包括:上,下,左,右
2.
三点直角折线法包括:上左,上右,下左,下右,左上,右上,左下,右下
3.
四点方形折线法包括:上左下,上右下,下左上,下右上,左上右,右上左,左下右,右下左
4.
四点梯形折线法包括:上左上,下左下,上右上,下左下,左上左,右上右,左下左,右下右
算法大概就这样了,不过我写的这种算法有重复搜索的部分,现在还想不出优化的方法.本源码最关键的二部分就是先把连连看游戏里的图片正确的数值化(可以通过找图或找字来数值化,不过找图费时是找字的好几倍,所以我把图片全部化成字了),第二个就是连通算法.


核心的连通算法:(源码里有简化版和原始版,功能一样,但简化版可能没有原始版那样好理解)
功能 逻辑型 连接(整型 x,整型 y,整型 角,字符型 方向)//简化版   
整型 i   
    如果(角>0)
        i=1
    如果结束  
    如果(方向=="四方"||方向=="上下"&&角<3)
遍历(整型 上=y-1;上>-1+i;上--)//向上
            选择(连连看辅助.碰图(x,上))
                条件 1:
                跳出
                条件 2:
                返回 真
            选择结束
            如果(连连看辅助.连接(x,上,角+1,"左右"))
                返回 真
            如果结束
        遍历结束
        遍历(整型 下=y+1;下<12-i;下++)//向下
            选择(连连看辅助.碰图(x,下))
                条件 1:
                跳出
                条件 2:
                返回 真
            选择结束
            如果(连连看辅助.连接(x,下,角+1,"左右"))
                返回 真
            如果结束
        遍历结束
    如果结束
    如果(方向=="四方"||方向=="左右"&&角<3)
        遍历(整型 左=x-1;左>-1+i;左--)//向左
            选择(连连看辅助.碰图(左,y))
                条件 1:
                跳出
                条件 2:
                返回 真
            选择结束
            如果(连连看辅助.连接(左,y,角+1,"上下"))
                返回 真
            如果结束
        遍历结束
        遍历(整型 右=x+1;右<16-i;右++)//向右
            选择(连连看辅助.碰图(右,y))
                条件 1:
                跳出
                条件 2:
                返回 真
            选择结束
            如果(连连看辅助.连接(右,y,角+1,"上下"))
                返回 真
            如果结束
        遍历结束
    如果结束
    返回 假
功能结束
国际惯例:源码回复可下.
游客,如果您要查看本帖隐藏内容请回复

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

发表于 2012-11-23 17:03:38 | 显示全部楼层
狂顶啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-23 17:13:25 | 显示全部楼层
谢谢糖糖老大了,今天我发现我学习TC有点本末倒置了,TC本来是写脚本的语言,我学了TC大半年,一个成品的脚本都没写出来过,倒是老去研究各种算法~~以后要改正!
回复 支持 反对

使用道具 举报

发表于 2012-11-23 17:35:02 | 显示全部楼层
回复 3楼kkkkkkk的帖子

这不就是了 。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-23 17:50:25 | 显示全部楼层
回复 4楼TC管理员的帖子

这只是个算法吧!
回复 支持 反对

使用道具 举报

发表于 2012-11-23 18:17:36 | 显示全部楼层
算法也很厉害啊!代码优化能
回复 支持 反对

使用道具 举报

发表于 2012-11-23 18:21:18 | 显示全部楼层
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
回复 支持 反对

使用道具 举报

发表于 2012-11-23 18:44:13 | 显示全部楼层
111111111111
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-23 19:36:34 | 显示全部楼层
回复 6楼TC兔子的帖子

优化过一次,原始版的连通算法用了200多行,现在简单版只用了50多行(这种调用函数自身的写法不知是不是叫归递,第一次用,都不知是不是种浪费的算法!也就是代码虽然少了,但运算起来的速度不知有没有原来没优化前那样快~,如果用的时间比原来的还长,都不知算不算是优化了!),现在这种转角的算法,在障碍越少的情况下,用的时间反而越长,重复搜索已经搜索过地方的次数也越多!不知怎样才能减少或完全不用重复搜索.如果没有重复搜索,效率会快好多.
回复 支持 反对

使用道具 举报

发表于 2012-11-23 21:52:31 | 显示全部楼层
对我来说,现在还是天书&#183;&#183;&#183;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-8 14:31 , Processed in 0.040726 second(s), 25 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表