连连看的消除算法
一、连连看常规消除规则

图 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、试玩
微信搜索 “连连看经典版”
