處理方塊之間的連線線

broadviewbj發表於2011-07-15

處理方塊之間的連線線

LinkInfo是一個非常簡單的工具類,它用於封裝兩個方塊之間的連線資訊—其實就是封裝一個ListList裡儲存了連線線需要經過的點。

在實現LinkInfo物件之前,先來分析兩個方塊可以相連的情形。連連看遊戲的規則約定:兩個方塊之間最多隻能用3條線段相連,也就是說最多隻能有2個“拐點”,加上兩個方塊的中心,方塊的連線資訊最多隻需要4個連線點。圖18.5顯示了允許出現的連線情況。

考慮到LinkInfo最多需要封裝4個連線點,最少需要封裝2個連線點,因此程式定義如下LinkInfo類。

程式清單:codes\18\Link\src\org\crazyit\link\object\LinkInfo.java

public class LinkInfo

{

     // 建立一個集合用於儲存連線點

     private List points = new ArrayList();

     // 提供第一個構造器, 表示兩個Point可以直接相連, 沒有轉折點

     public LinkInfo(Point p1, Point p2)

     {

          // 加到集合中去

          points.add(p1);

          points.add(p2);

     }

     // 提供第二個構造器, 表示三個Point可以相連, p2p1p3之間的轉折點

     public LinkInfo(Point p1, Point p2, Point p3)

     {

          points.add(p1);

          points.add(p2);

          points.add(p3);

     }

     // 提供第三個構造器, 表示四個Point可以相連, p2, p3p1p4的轉折點

     public LinkInfo(Point p1, Point p2, Point p3, Point p4)

     {

          points.add(p1);

          points.add(p2);

          points.add(p3);

          points.add(p4);

     }

     // 返回連線集合

     public List getLinkPoints()

     {

          return points;

     }

}

LinkInfo中所用的Point代表一個點,程式直接使用了android.graphics.Point類,每個Point封裝了該點的XY座標。

 處理方塊之間的連線線

本文節選自《瘋狂Android講義(CD光碟1)》一書。

圖書詳細資訊:http://space.itpub.net/?uid-13164110-action-viewspace-itemid-702318

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13164110/viewspace-702322/,如需轉載,請註明出處,否則將追究法律責任。

相關文章