俄羅斯方塊中的程式設計思想

2022-05-29 17:33:13 字數 1072 閱讀 9750

做了俄羅斯方塊的小練習,總結一下其中用到的程式設計思想

一.物件導向的思想

1.封裝

抓住格仔、方塊、牆幾個事物

方塊由四個格仔組成

牆由10*20的格仔組成(定義為二維陣列)

牆中的格仔開始是空的,方塊落下去,又堆疊起來,牆上才有格仔(給對應陣列元素的賦值),符合生活中人們對事物的認識

2.繼承

把方塊的通用屬性和方法抽象為方塊的共同父類,不同型別的方塊都繼承這個類

類圖如下所示:

二.化繁為簡的思想

1.把複雜的功能拆分乙個乙個的小功能:比如把action主流程細分為在遊戲結束、遊戲暫停、遊戲進行中,

每一種又繼續細分對不同的按鍵做什麼反應

2.把整體的動作拆分為每乙個部分的動作:

比如,方塊的移動拆分為組成方塊的每個格仔的移動

3.先實現基礎的功能,再逐步完善

三.補償的思想

在對方塊的移動過程中,營造一種方塊碰到牆壁不能越界的效果

採用了補償的思想

以向左移為例。先試著向左移,如果會造成越界或者重合,那就再向右移一次

利用了計算機快速地運算速度,肉眼看起來就像方塊碰到了牆壁或障礙物就無法移動了一樣

四.數學分析的思想

在對方塊做不同形式的轉換的過程中,歸納每種方塊有幾種變化狀態,及從一種狀態到下一種狀態的時候每個格仔的座標的變化規律

再把狀態變化封裝成陣列,在父類中只是定義狀態陣列,沒有指定陣列的長度,在子類中根據子類的變化個數,再確定陣列的長度

五.簡單工廠的思想

方塊的父類有乙個靜態方法,用來隨機建立不同的子類物件

下圖為遊戲效果圖:

俄羅斯方塊高階 AI俄羅斯方塊

前文回顧 致青春 python實現俄羅斯方塊 人工智慧大火的今天,如果還是自己玩俄羅斯方塊未免顯得太low,為什麼不對遊戲公升級,讓機器自己去玩俄羅斯方塊呢?有了這個想法之後利用週六週日兩天的時間去蒐集了大量的資料,在電腦宕機好多次之後終於將ai俄羅斯方塊實現了。所謂讓機器自己去玩俄羅斯方塊,就是讓...

俄羅斯方塊

俄羅斯方塊 tetris,俄文 是一款風靡全球的電視遊戲機 和掌上遊戲機遊戲,它由俄羅斯人阿列克謝 帕基特諾夫 發明,故得此名。俄羅斯方塊的基本規則是移動 旋轉和擺放遊戲自動輸出的各種方塊,使之排列成完整的一行或多行並且消除得分。由於上手簡單 老少皆宜,從而家喻戶曉,風靡世界。俄羅斯方塊的開發者是阿...

俄羅斯方塊

include include include include includeusing namespace std include include define mem a,b memset a,b,sizeof a const int sudu 40 const int dir 4 2 cons...