連連看一種演算法的實現 分析與思考(下)

2021-08-24 19:12:49 字數 613 閱讀 5352

問題擴充套件

下面我們來討論這樣乙個問題:

如果遊戲規則允許如圖中紫紅色連線的方式,那麼我們改如何實現它呢?

我的想法是: 1.

在p2周圍4

個方向任意乙個空格checkp2, 2.

進行第三種連線方法中的判斷,

triline(p1, checkp2)看結果的真假值

如圖所示,途中p1、checkp2進行triline(p1,checkp2)的值為真,所以,p1,p2可以聯通。

總結:通過上述分析,可以看出這個連連看演算法的實現過程:

linecheck()-

àsecondline()=【linecheck()*4】à

triline(point p1, point p2)=【移位+secondline()】

可見,複雜的聯通判定可有先前稍簡單的演算法復合使用後實現,即將大問題細分成原子問題來解決,這樣的好處,不僅可以降低初期的分析難度,又可避免陷入編碼時的混亂。另外這樣,使得邏輯合理,結構清晰,便於理解。

連連看演算法的實現

圖 0,0,0,0,0,0,0,0,0,0 0,8,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0 0,0,0,0,...

連連看演算法的實現

連連看演算法的實現 收藏 圖 0,0,0,0,0,0,0,0 0,0 0,8,0,0,0,0,0,0 0,0 0,0,0,0,0,0,0,0 0,0 0,0,0,0,0,0,0,0 0,0 0,0,0,0,0,0,0,0 0,0 0,0,0,0,0,0,0,0 0,0 0,0,0,0,0,0,0,0...

乙個連連看遊戲的通路檢測演算法

在看了一篇關於連連看通路檢測算發的啟發下篇寫的,列出 如下 連連看通路檢測演算法 include using namespace std include int main 設定選中座標 要改進 要檢測位置是否相同,值是否相同 short set1x 4,set1y 1,set2x 2,set2y 3...