Skip to content

Latest commit

 

History

History
17 lines (17 loc) · 1.09 KB

README.md

File metadata and controls

17 lines (17 loc) · 1.09 KB

Tetris 设计思路

模块

  1. 一个Factory负责随机产生一个随机颜色的方块。
  2. 一个Location类,保存每一个小方格的位置以及颜色信息。
  3. 一个方块的基类
  • 属性
    • 状态:代表方块不同的朝向
    • 位置List:用链表保存本方块的位置。每个俄罗斯方块的小方格在链表中的位置是固定的,方便旋转。
  • 方法
    • stateChange():改变方块状态,即顺时针旋转方块(一字型只有两种状态,严格来说不算旋转)。使用swith,根据当前状态来进行旋转。
    • nextLocation():返回方块整体下降一格之后的位置给field。
  1. field类
  • 属性
    • N(N为field的宽)个List保存已经落下的方块的小方格的位置,且顺序为List(0)为位置最高的方格。这样当方块返回下一步的位置的时候,只需要跟每个List(0)比较就可以知道落到底了没。
  • 方法
    • eliminate():方块落到底之后,遍历field中的方格位置,消除满行的那一行方格。需要考虑消除动画。
    • draw(): 绘出已经落下的方块。