CocosCreator连连看 - TS

连连看的消除算法

一、连连看常规消除规则


图 A 中出现在同一直线上无障碍的圈圈可以消除;图 B 中两个圈圈可以通过一次转弯消除;图 C 和图 D 中,两个圈圈可以通过两次转弯消除。

1、写好一个方法,用于判断当前位置是什么物体


代码如图


2、水平检测 - 判断两个点的纵坐标是否相等,同时判断两点间有没有障碍物


代码如下


3、垂直检测 -  判断两个点的横坐标是否相等,同时判断两点间有没有障碍物


代码如下


4、一个拐角检测 - 一个拐角检测可以分解成一个水平检测一个垂直检测 



一个拐角检测 = 水平检测 && 垂直检测

   如:A点到B点能否连接可以转化为满足以下任意一项:

          1、A 点至 C 点的垂直检测,以及 C 点至 B 点的水平检测。

           2、A 点至 D 点的水平检测,以及 D 点至 B 点的垂直检测。


代码如图

5、两个拐角检测 - 两个拐角检测可分为成一个拐角检测和水平检测或垂直检测



两个拐角检测 = 一个拐角检测 && (水平检测 || 垂直检测)

如:水平、垂直分别穿过 A B 共有四条直线,扫描直线上所有不包含 A B 的点,看是否存在一点 C ,满足以下任意一项:

A 点至 C 点通过水平或垂直检测,C 点至 B 点可通过一个拐角连接。(图中用 C 表示)

A 点至 C 点可通过一个拐角连接,C 点至 B 点通过水平或垂直连接。(图中用 C 下划线表示)



代码如图

5、整合


代码如图


6、试玩

微信搜索   “连连看经典版”  

你可能感兴趣的:(CocosCreator连连看 - TS)