昨日聽視頻知道軟件編寫需要通過MVC設計模式來實現的,分別是V(View)視圖用戶界面、C(Ctroller)控制器、M(Model)模型三層架構,tetris如何實現?作爲菜鳥中的菜鳥,很難理解,所以這個問題還是登些日子思考,現在把一些基本的問題屢一屢。
限於知識沉澱問題,目前無法做到思考全局,僅僅從已有的東西上思考一下,7個類型得格子I、J、L、Z、S、O、T7個格子的下落、左移、右移動作實現,這就要分別建立7個類,考慮到7個類中有公共重複部分,爲減少代碼的重用性,不僅僅是要在7個類上面建立一個父類的問題,而是一個父類無法完全解決7個類的問題,因爲7個類裏只能說都是有4個格子組成而已,具體操作各有不同。
1、建立一個格子類,僅僅是一個座標的類,由這個格子類創建的4個對象組成一個數組,這個數組便是一個我們所需要下落的格子,由於7個格子各不同其格子的座標組成肯定不相同;
2、這樣就要考慮一個問題該建立一個父類?還是建立一個抽象類?或者接口呢?通過什麼方式來完成7個格子的實現呢?思考一下:
①建一個父類,這個父類很顯然只能定義一個4個元素的數組,也只能定義一個輸出格子座標的方法,比如格子的下落、左移、右移等方法無法實現,只能通過子類自己定義自己實現,略感不對;
②建一個抽象類作爲7個子類的父類,那麼使用abstract來修飾抽象類,然後在類中定義成員變量時定義一個數組,構造方法中定義出數組需要4個元素;而後通過abstract來修飾方法定義抽象方法,後由子類來重寫方法完成一個完整的方法;
③建立接口,接口中只能有常量和抽象類,所以在這兒稍感不對,故而暫時放棄思考。
總結:我認爲可以建立一個抽象類,用7個子類來繼承,並完成格子適用的方法。
3、從7個格子已經思考了一些,現在想想可以使用JFrame類來建立一個窗口,根據需要的情況選擇窗口大小,至於窗口內的規劃需要用到IPanel,由於還沒學到,現在變放棄思考;
4、記錄分數?
5、消行?
6、本地數據記錄?本地分數排行
7、遠程數據存儲記錄排行?
8、遊戲進程隨得分越多格子下落越快?
9、其他各種功能
忽然間發現自己很菜,
要學會思考啊!