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,每次可以選擇上下左右其中乙個方向去滑動,每滑動一次,所有的數字方塊都會往滑動的方向靠...