作了俄羅斯方塊的小練習,總結一下其中用到的編程思想編程
一.面向對象的思想
1.封裝:
抓住格子、方塊、牆幾個事物
方塊由四個格子組成
牆由10*20的格子組成(定義爲二維數組)
牆中的格子開始是空的,方塊落下去,又堆疊起來,牆上纔有格子(給對應數組元素的賦值),符合生活中人們對事物的認識數組
2.繼承:
把方塊的通用屬性和方法抽象爲方塊的共同父類,不一樣類型的方塊都繼承這個類spa
類圖以下所示:對象
二.化繁爲簡的思想
1.把複雜的功能拆分一個一個的小功能:好比把action主流程細分爲在遊戲結束、遊戲暫停、遊戲進行中,
每一種又繼續細分對不一樣的按鍵作什麼反應blog
2.把總體的動做拆分爲每個部分的動做:
好比,方塊的移動拆分爲組成方塊的每一個格子的移動繼承
3.先實現基礎的功能,再逐步完善遊戲
三.補償的思想
在對方塊的移動過程當中,營造一種方塊碰到牆壁不能越界的效果
採用了補償的思想
以向左移爲例。先試着向左移,若是會形成越界或者重合,那就再向右移一次
利用了計算機快速地運算速度,肉眼看起來就像方塊碰到了牆壁或障礙物就沒法移動了同樣數學
四.數學分析的思想
在對方塊作不一樣形式的轉換的過程當中,概括每種方塊有幾種變化狀態,及從一種狀態到下一種狀態的時候每一個格子的座標的變化規律
再把狀態變化封裝成數組,在父類中只是定義狀態數組,沒有指定數組的長度,在子類中根據子類的變化個數,再肯定數組的長度io
五.簡單工廠的思想
方塊的父類有一個靜態方法,用來隨機建立不一樣的子類對象基礎
下圖爲遊戲效果圖: