對於連連看遊戲其實沒有什麼太多要講的,最主要的就是連連看的演算法稍微複雜一點,其實的地方沒有太多的痛點,首先看看我們遊戲要達到什麼樣的效果,由於本人非常的喜歡五月天,所以背景就用偶像的圖片了
在不考慮演算法的情況下,在這裡最主要的是有關連個類的處理,一個是Piece類,這個類主要代表連連看中的每一個方格地區對象,其次呢是PieceManager類。從這個類的名字可以看出,該類是用於處理這個的方格的所有操作的,比如怎麼擷取所及排列的圖片等等,最後是有關怎麼知道我們點擊的圖片是哪個圖片的問題,在這裡我們互用一個二維數組來代表裡面的所有圖片,有圖片的id來表示每一張圖片,相同的圖片的id也是相同的。
下面上代碼
public class Piece {private Context context;//每個圖片的寬和高private int id = 0;public Piece(Context context,int id){this.context = context;this.id = id;}public int getId(){return id;}public Bitmap getImage(){return BitmapFactory.decodeResource(context.getResources(), getId());}public int getWidth(){return getImage().getWidth();}public int getHeight(){return getImage().getHeight();}}
//每一個小方塊的管理方法public class PieceManager {private Activity context;private Piece[][] pieces = new Piece[8][8];private LinkedList<Piece> linkedList = new LinkedList<Piece>();int id = 0;public PieceManager(Context context){this.context = (MainActivity)context;//此處通過擷取一張圖片的id來擷取到一張圖片的高和寬id = context.getResources().getIdentifier("image0", "drawable", context.getPackageName());}public Piece[][] getImage(){for(int i=0;i<16;i++){int id = context.getResources().getIdentifier("image"+i, "drawable", context.getPackageName());//因為需要64張圖片,而又要兩兩配對,所以只要選出32張就可以了,為了使選出的圖片看著比較的均勻,我們先把裡面的沒一張圖片都取一遍,然後不夠的再隨機取linkedList.add(new Piece(context,id));linkedList.add(new Piece(context,id));}//變成64張linkedList.addAll(linkedList);//讓其內部的圖片隨機排列Collections.shuffle(linkedList);for(int i=0;i<8;i++){for(int j=0;j<8;j++){pieces[i][j] = linkedList.get(i*8+j);}}return pieces;}public int getPieceWidth(){return new Piece(context,id).getWidth();}public int getPieceHeight(){return new Piece(context,id).getHeight();}}