Python2048游戲的實現


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 不足之處

頁面不夠美觀


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM