一款Android拼圖遊戲
阿新 • • 發佈:2019-02-16
關於拼圖的作品,網上有很多了,此次是自己拿以前自己用java寫的拼圖演算法,做的一款小遊戲。
遊戲核心演算法:確保每次初始化的圖片陣列有解,0表示空塊。
如下:
遊戲介面動作:每點選一次圖塊,計算相鄰的空位,移動記憶體陣列,根據記憶體陣列在介面Canvas畫圖塊即可/* * function: check the map array and make sure it is validity. input:length, * map output:boolean; */ public boolean parityCheck(int length, int[] a) { // 返回陣列的排列的逆序數加上0元素行號和列號的奇偶性,true為偶,false為奇。 int v = 0; int zeroIndex = 0; for (int i = 0; i < length; i++) { for (int j = i + 1; j < length; j++) { if (a[i] > a[j]) { v++; } } if (a[i] == 0) { zeroIndex = i; } } int lineIndex = zeroIndex / COLS + 1; int colIndex = zeroIndex % ROWS + 1; return ((lineIndex + colIndex + v) % 2 == 0); }
完成後,執行的介面大概如下 (下面一次為初始第2張圖片介面,拼成後介面,選單介面):
選單解釋:
看原圖:可以快速顯示(停留時間可以設定)一下原圖是什麼樣的,方便預覽原圖,當然高手可以不看原圖去拼。
上張圖/下張圖:這個簡單了,直接調出系統自帶的相對當前的上一張/下一張圖片,進行拼圖。
圖片來源:可以選擇系統自帶的,可以從自己手機的相簿裡面選取,也可以用相機現場拍照,獲取圖片。
難度:可以選擇容易模式(2x2,2x3),普通模式(3x3,3x4),困難模式(4x4,4x5,5x5,5x6),地獄模式(6x6,6x7....)。。。。根據手機/平板的大小。越多難度越大。
音樂:可以選擇是否播放系統自帶的音樂,或者自己從手機選擇音樂,作為背景音樂播放。
空塊:設定空位的佔位圖片,系統自帶的有,也可以自定義。
關於:軟體的作者,版本等資訊。
看一個困難模式的(依次是困難模式的一張圖介面,選擇圖片來源介面, 看原圖介面):
後續再加上積分和等級功能,再連線上雲資料庫,就更加有趣了,待更新。