Android案例演算法 2048遊戲

2021-07-25 15:50:47 字數 1327 閱讀 4167

2048的確是風靡了一段時間,這種遊戲對於初學android的人來說是很好的練手專案,還有俄羅斯方塊什麼的都是可以拿來練手的

下面我來說一下2048這款遊戲的一種演算法

2048是怎麼個規則,大家都知道的吧 最初是兩個隨機位置出現的隨機數字(2或4)

比如2 2 0 4,手指往左一滑,就會變成4 4 0 0   這裡的0就是代表無方塊  2和2生成的4是不會和後面的4合併的

比如2 2 4 4,手指往左一滑,就會變成4 8 0 0   這裡的0就是代表無方塊  2和2生成的4是不會和後面的4合併的,但是後面的4和4還是會合併的

我們將整個方塊情況設立成乙個矩陣 空格用0表示

如4乘4的  

2  0 0 0

2  0 0 0

0  0 0 0

0  0 0 0

向左滑動  我們重新計算矩陣的每一行值,然後轉換為相應的方塊情況

附上演算法**

/**

* 滑動事件:左

*/private void swipeleft() else else

}} else

}if(mkeynum != -1)

// 改變矩陣

for (int m = 0; m < mcallist.size(); m++)

for (int m = mcallist.size(); m < mgamelines; m++)

// 重置行(列)引數,以進行下一行(列)的分析

mkeynum = -1;

mcallist.clear();

}}

注意向右滑動與向左滑動是有所不同的

/**

* 滑動事件:右

*/private void swiperight() else else

}} else

}if(mkeynum != -1)

// 改變矩陣

for (int m = 0; m < mgamelines - mcallist.size(); m++)

int index = mcallist.size() - 1;

for (int m = mgamelines - mcallist.size(); m < mgamelines; m++)

// 重置行(列)引數,以進行下一行(列)的分析

mkeynum = -1;

mcallist.clear();

}}

要從最右邊開始迴圈,大家應該發現mkeynum這個變數了吧,他預設是-1,這個變數是是否合併的比較基準,當我們向右滑動時我們要從右往左計算比較基準

Python2048演算法開發

源 的鏈結可以在最下面找到,源 中的2048演算法包含介面的開發,但本次關於2048演算法的講解不包含介面的開發。這個演算法是我自己思考出來的,沒有借鑑其他人的 希望大家能從中學到一點東西。演算法的整體內容非常簡單,主要由兩個函式構成,但是在考慮這兩個函式之前是什麼之前,我們先考慮,怎樣讓一行四列的...

2048 遊戲核心演算法

2048 遊戲核心演算法 架構顯示 介面 與控制 演算法 分離 控制台pyqt pygame 演算法1.高內聚 上下移動 矩陣轉置 左右移動 向左移動 合併資料 零元素後移 向右移動 翻轉 合併資料 零元素後移 2.降維思想 將二維列表的操作,改為對一維列表的操作.list merge none z...

2048小遊戲主要演算法實現

描述 2048是一款最近較為流行的數字遊戲,很多同學在課堂上研究如何得到更高的積分,以至影響了學習效果,不如自己寫下這款遊戲吧,這樣估計也就沒有玩的興趣了。遊戲的規則是 給定乙個4 4的方格,開始的時候只有若干個2,每次可以選擇上下左右其中乙個方向去滑動,每滑動一次,所有的數字方塊都會往滑動的方向靠...