1.2 項目完成的功能與特色
通過用戶操作實現相鄰數字的疊加,沒有數字可相加時,生成一個2或4的隨機數繼續游戲,實現2048的最基本游戲功能。
1.3 項目采用的技術棧
Python
1.4 項目借鑒源代碼的地址
https://www.oschina.net/code/snippet_1756807_35638
1.5 團隊成員任務分配表
一、項目的需求分析
1、可使用wsad或WSAD來實現上下左右的移動
2、可以完成對移動數的疊加或在空白出隨機生成數字。
二、項目功能架構圖、主要功能流程圖
三、系統模塊說明
4.1 系統模塊列表
align(row, direction)函數和 addSame(row, direction) 函數和handle(row, direction)函數、isListOver(self, vList)函數、isOver(self)函數、addElement(self)函數
4.2 各模塊詳細描述(名稱,功能,運行截圖,關鍵源代碼)
align(row, direction)函數作用是沿着用戶輸入的方向疊加一行中的數字,例如,向左移動時,移動前x = [0, 2, 2, 2],利用align(row, direction)函數移動后x = [4, 2, 0, 0]。這就實現了這列數字向左疊加。向右移動時,移動前x = [2, 4, 2, 2],利用align(row, direction)函數移動后x = [0, 2, 4, 4]。上下同理。
addSame(row, direction)函數作用是查找相同並且相鄰的數字。如果找到這種數字,將其中一個沿着指定方向翻倍,另一個重置為0(如果direction是'left'將左側翻倍,右側置0,如果direction為'right',將右側翻倍,左側置0),並累加積分。
例如x = [2, 2, 2, 2]
addSame(x, 'left') 后 x = [4, 0, 2, 2] increment=4
再 addSame(x, 'left') 后 x = [4, 0, 4, 0] increment=8
handle(row, direction)函數包含着align(row, direction)函數和 addSame(row, direction) 函數,處理好行和方向,返回新增積分至totalScore中。
isListOver(self, vList)函數作用是判斷股一個列表是否還可以合並,當一列數字中一個數字和它相鄰數字相等時,並且不為0,就可以合並。
isOver(self)函數是判斷游戲是否真正結束,當空白區域數目 N等於0時,如果可以合並就未結束。
addElement(self)函數是統計好空白區域數目N,隨機產生選定好的幾個數,random.choice([2, 2, 2, 4]),其中2比4出現概率要大2/3。
四、項目總結
5.1 特點
實現各個方塊的上下左右移動以及實現方塊間數字判斷與相加
5.2 不足之處
頁面不夠美觀