使用VS2015编写的小游戏。
变量和函数名很多使用的中文,过低版本的VS可能不支持。
最近开始自学面向对象,说实话刚开始还挺看不起这个小游戏的。
后来还是决定用这个项目练习练习,结果真正写起来就发现不是容易事了。
这玩意一共就300多行的代码,写了一整天,各种Debug很费时间。
设计方法是使用抽象父类配合工厂方法模式制造方块。
抽象父类实现了绝大多数的功能,准确来说,其实只有子类的构造函数和其中一个正方形方块子类的旋转方法进行重写了,其他功能不是父类共享的,就是从父类继承的。
工厂方法模式其实是为了练习而硬加上去的,就这个项目而言,使用简单工厂模式会省下几十行代码。
如果要加入新的方块形状,需要在工厂加入新子类,实现类也对应加上新子类。最后在随机生成方块对象的函数里再小改下就好了。实现类的新子类,构造函数仿别的写就行,唯一值得说的是,程序将把集合的第一个格子作为旋转中心。
说是面向对象,但是其实就只有一个类,而且还是一大堆静态函数,类与类之间的关联神马的全部没有,都有点不好意思说面向对象了,总之还请多多指教吧。
变量和函数名很多使用的中文,过低版本的VS可能不支持。
最近开始自学面向对象,说实话刚开始还挺看不起这个小游戏的。
后来还是决定用这个项目练习练习,结果真正写起来就发现不是容易事了。
这玩意一共就300多行的代码,写了一整天,各种Debug很费时间。
设计方法是使用抽象父类配合工厂方法模式制造方块。
抽象父类实现了绝大多数的功能,准确来说,其实只有子类的构造函数和其中一个正方形方块子类的旋转方法进行重写了,其他功能不是父类共享的,就是从父类继承的。
工厂方法模式其实是为了练习而硬加上去的,就这个项目而言,使用简单工厂模式会省下几十行代码。
如果要加入新的方块形状,需要在工厂加入新子类,实现类也对应加上新子类。最后在随机生成方块对象的函数里再小改下就好了。实现类的新子类,构造函数仿别的写就行,唯一值得说的是,程序将把集合的第一个格子作为旋转中心。
说是面向对象,但是其实就只有一个类,而且还是一大堆静态函数,类与类之间的关联神马的全部没有,都有点不好意思说面向对象了,总之还请多多指教吧。