pugin
- html-webpack-plugin
- clean-webpack-plugin
- webpack-dev-server
- ts-loader
- typescript
- 单一智能原则:每个类只做与他相关的事情
- 关闭原则:系统中的类,应该对拓展开放,对修改关闭
基于以上两个原则,系统中使用如下的模式 数据-界面分离模式(数据和界面解耦)
export class Square {
x: 0,
y: 0,
color: 'red'
}
- 书写面向对象的class时,class中的属性全部私有化。需要修改的属性,使用公开的方法修改;
属性:
- x小方块的数组 不能发生变化 readonly 思考:该数组的成员从何而来
- 一个方块的组合:取决于组合的形状(坐标的相对位置的组合,该组合中有一个特殊坐标,表示形状的中心) 如果知道形状和中心点的坐标,可以确定所有的小方块的坐标
根据当前的形状转换为新的形状 有些方块是不会旋转的,有的形状的方块的旋转只会有2种形态; rotate方法有一种通用的实现,不同的情况有不同的实现
- 将squareGroup作为父类,其他的方块都是他的子类,子类可以重写父类的方法;
- fix:已经接近边界的方块,旋转可能会超出容器的范围
Game 类:处理游戏的过程,清楚什么时候显示,但是不知道如何显示;
