天天看點

怎樣判斷你點選的兩個相同的圖案是否可以消除?---------練練看算法

 練練看是一款非常有意思的遊戲,在光棍節的時候記得玩連連看。

     看到螢幕上面一對一對的被消掉,呵呵,心裡那感覺就······。

     花了幾段小的時間來關注了其中的代碼實作。

     可以引進 二維數組相應下标記錄按鈕(圖示)的位置,索引值存儲“0” 即按鈕為空;

     練練看當中的核心也是最能展現效率的地方

    怎樣判斷你點選的兩個相同的按鈕(圖案)是否可以消除?

     我們分三種情況分别分析一下:

1)兩個相同的圖案是相鄰的(沒有拐彎):

怎樣判斷你點選的兩個相同的圖案是否可以消除?---------練練看算法

具體實作代碼如下:

怎樣判斷你點選的兩個相同的圖案是否可以消除?---------練練看算法
怎樣判斷你點選的兩個相同的圖案是否可以消除?---------練練看算法

2)兩圖案之間需要轉一個彎;

怎樣判斷你點選的兩個相同的圖案是否可以消除?---------練練看算法

3)兩圖案之間需要兩個拐彎;

怎樣判斷你點選的兩個相同的圖案是否可以消除?---------練練看算法

從複雜的3)情況下手,後面你會發現其實2)情況隻是其中的一個特列,判斷是否可消除有以下的思路:

對你點選的每兩個相同的按鈕(即先判斷你點選的兩個按鈕是否相同,接着判斷能否相消),對于兩按鈕能否相消,

可以分為行周遊和列周遊(下面思路适用于行周遊);

1)(在行上)找到和第一個按鈕同行的一個空按鈕;

2)(在行上)判斷第二個按鈕同行到空按鈕之間是否暢通;

3)(在行上)判斷第一個按鈕同行到空按鈕之間時候通暢;

4)(在列上)判斷第一個按鈕到第二個按鈕在所在那個空按鈕列上是否暢通;

相應的列周遊隻是改變其中的循環參數以及變量的值,就不贅言了。

貼個實作行周遊的代碼:

怎樣判斷你點選的兩個相同的圖案是否可以消除?---------練練看算法
怎樣判斷你點選的兩個相同的圖案是否可以消除?---------練練看算法

如果,您認為閱讀這篇部落格讓您有些收獲,不妨點選一下右下角的【推薦】 

如果,您希望更容易地發現我的新部落格,不妨點選一下左下角的【關注我】 

如果,您對我的部落格内容感興趣,請繼續關注我的後續部落格,我是【orson】 

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段 聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。 

轉載:http://www.cnblogs.com/java-class/archive/2013/06/06/3119302.html

繼續閱讀