1. 程式人生 > >一款Android拼圖遊戲

一款Android拼圖遊戲

  關於拼圖的作品,網上有很多了,此次是自己拿以前自己用java寫的拼圖演算法,做的一款小遊戲。

  遊戲核心演算法:確保每次初始化的圖片陣列有解,0表示空塊。

  如下: 

    /*
	 * 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);
	}
  遊戲介面動作:每點選一次圖塊,計算相鄰的空位,移動記憶體陣列,根據記憶體陣列在介面Canvas畫圖塊即可

  完成後,執行的介面大概如下 (下面一次為初始第2張圖片介面,拼成後介面,選單介面):

  

  選單解釋:

  看原圖:可以快速顯示(停留時間可以設定)一下原圖是什麼樣的,方便預覽原圖,當然高手可以不看原圖去拼。

  上張圖/下張圖:這個簡單了,直接調出系統自帶的相對當前的上一張/下一張圖片,進行拼圖。

圖片來源:可以選擇系統自帶的,可以從自己手機的相簿裡面選取,也可以用相機現場拍照,獲取圖片。

  難度:可以選擇容易模式(2x2,2x3),普通模式(3x3,3x4),困難模式(4x4,4x5,5x5,5x6),地獄模式(6x6,6x7....)。。。。根據手機/平板的大小。越多難度越大。

  音樂:可以選擇是否播放系統自帶的音樂,或者自己從手機選擇音樂,作為背景音樂播放。

  空塊:設定空位的佔位圖片,系統自帶的有,也可以自定義。

  關於:軟體的作者,版本等資訊。

看一個困難模式的(依次是困難模式的一張圖介面,選擇圖片來源介面, 看原圖介面):

  

  後續再加上積分和等級功能,再連線上雲資料庫,就更加有趣了,待更新。