連連看的消除算法
一串前、連連看常規(guī)消除規(guī)則
圖 A 中出現(xiàn)在同一直線上無(wú)障礙的圈圈可以消除;圖 B 中兩個(gè)圈圈可以通過(guò)一次轉(zhuǎn)彎消除;圖 C 和圖 D 中费韭,兩個(gè)圈圈可以通過(guò)兩次轉(zhuǎn)彎消除。
1庭瑰、寫(xiě)好一個(gè)方法星持,用于判斷當(dāng)前位置是什么物體
代碼如圖
2、水平檢測(cè) -?判斷兩個(gè)點(diǎn)的縱坐標(biāo)是否相等弹灭,同時(shí)判斷兩點(diǎn)間有沒(méi)有障礙物
代碼如下
3督暂、垂直檢測(cè) -??判斷兩個(gè)點(diǎn)的橫坐標(biāo)是否相等,同時(shí)判斷兩點(diǎn)間有沒(méi)有障礙物
代碼如下
4穷吮、一個(gè)拐角檢測(cè) - 一個(gè)拐角檢測(cè)可以分解成一個(gè)水平檢測(cè)一個(gè)垂直檢測(cè)?
一個(gè)拐角檢測(cè) = 水平檢測(cè) && 垂直檢測(cè)
? ?如:A點(diǎn)到B點(diǎn)能否連接可以轉(zhuǎn)化為滿足以下任意一項(xiàng):
? ? ? ? ? 1逻翁、A 點(diǎn)至 C 點(diǎn)的垂直檢測(cè),以及 C 點(diǎn)至 B 點(diǎn)的水平檢測(cè)酒来。
? ? ? ? ? ?2卢未、A 點(diǎn)至 D 點(diǎn)的水平檢測(cè),以及 D 點(diǎn)至 B 點(diǎn)的垂直檢測(cè)堰汉。
代碼如圖
5辽社、兩個(gè)拐角檢測(cè) -?兩個(gè)拐角檢測(cè)可分為成一個(gè)拐角檢測(cè)和水平檢測(cè)或垂直檢測(cè)
兩個(gè)拐角檢測(cè) = 一個(gè)拐角檢測(cè) && (水平檢測(cè) || 垂直檢測(cè))
如:水平、垂直分別穿過(guò) A B 共有四條直線翘鸭,掃描直線上所有不包含 A B 的點(diǎn)滴铅,看是否存在一點(diǎn) C ,滿足以下任意一項(xiàng):
A 點(diǎn)至 C 點(diǎn)通過(guò)水平或垂直檢測(cè)就乓,C 點(diǎn)至 B 點(diǎn)可通過(guò)一個(gè)拐角連接汉匙。(圖中用 C 表示)
A 點(diǎn)至 C 點(diǎn)可通過(guò)一個(gè)拐角連接,C 點(diǎn)至 B 點(diǎn)通過(guò)水平或垂直連接生蚁。(圖中用 C 下劃線表示)
代碼如圖
5噩翠、整合
代碼如圖
6、試玩
微信搜索? ?“連連看經(jīng)典版”??