連連看算法
= = !!滿十幾
可以把整個步驟分成三步,由簡單到難
1:如果兩個點在一條直線上,先把兩個在一條直線上的點的判斷做出來,也就是判斷兩個點之間時候能直接連接,中間有沒有圖片,(該判斷封裝到函數中,因爲他是下面幾個步驟的基礎)
2:如果一條直線上兩個點不能直接連接,兩個點做偏移,然後畫矩形 x軸或者y軸+1or-1,這樣出來四個點,兩個需要判斷的點A,B,兩個因爲偏移而虛擬出來的兩個點C,D,
例如 A D
X
X
B C,第一步判斷中,A-B直接連接不成功,做偏移,這時候,判斷B-C,C-D,D-A這三條直線能否直接連接,不能繼續偏移,直到成功,如果一直偏移到兩個邊或者偏移過程中就失敗了,就是不能連接
3:如果需要判斷的兩個點不在一條直綫上,那同樣是畫矩形,例如需要判斷的兩個點A,B,兩個因爲矩形虛擬出來的點C,D
A D
C B,這樣我們做這樣的判斷,C-A,C-B或者D-A,D-B,如果某個能够成功,就是能連接,不能就繼續偏移,A點+1或-1,B點+1或-1,直到到達兩個邊或者偏移過程中就失敗了
因爲連連看規則是最多能拐彎兩次,所以畫矩形,也可以用一個點四個方向偏移找另外一個點,中間偏移失敗或者到兩個變就轉彎,直到拐彎的方向大於兩次就失敗,

浙公网安备 33010602011771号