昨日听视频知道软件编写需要通过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、其他各种功能


   忽然间发现自己很菜,

   要学会思考啊!