問題擴充套件:
下面我們來討論這樣乙個問題:
如果遊戲規則允許如圖中紫紅色連線的方式,那麼我們改如何實現它呢?
我的想法是: 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...