⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠
Text Elements
Game
+command(input)
AbstractGamePlayer
+shiftLeft()
+shiftRight()
+shiftDown()
+rotateClockwise()
+rotateCounterClockwise()
+drop()
GamePlayer
BlindEffect
HeavyEffect
+print()
+shiftDown()
ForceEffect
+updateCurrentBlock()
Block
+computeShiftLeft()
+computeShiftDown()
+computeShiftRight()
+computeRotateClockwise()
+computeRotateCounterclockwise()
+setPositions()
IBlock
+computeRotateClockwise()
+computeRotateCounterclockwise()
JBlock
+computeRotateClockwise()
+computeRotateCounterclockwise()
LBlock
+computeRotateClockwise()
+computeRotateCounterclockwise()
OBlock
+computeRotateClockwise()
+computeRotateCounterclockwise()
SBlock
+computeRotateClockwise()
+computeRotateCounterclockwise()
ZBlock
+computeRotateClockwise()
+computeRotateCounterclockwise()
TBlock
+computeRotateClockwise()
+computeRotateCounterclockwise()
Grid
+checkAndClearRows()
+print()
+addBlock(block)
+checkCollision(positions)
+replaceCurrentBlock()
+shiftLeft()
+shiftRight()
+shiftDown()
+rotateClockwise()
+rotateCounterClockwise()
+drop()
+replaceCurrentBlock()
Effect
+shiftLeft()
+shiftRight()
+shiftDown()
+rotateClockwise()
+rotateCounterClockwise()
+drop()
+updateCurrentBlock()
Cell
4
0…165
1
1
1…N
2
LevelZero
+generateBlock()
LevelOne
LevelTwo
LevelThree
LevelFour
Level
+generateBlock()
+generateBlock()
+generateBlock()
+generateBlock()
+generateBlock()
1
Decorator Pattern
GameRenderer
+render()
+gameLoop()
0…N
1
GraphicalDisplay
+render()
TextDisplay
+render()
+applyEffect()
+removeEffect()
0…N
Observer Pattern
Level4Effect
+shiftLeft()
+shiftRight()
+shiftDown()
+rotateClockwise()
+rotateCounterClockwise()
Level3Effect
+shiftLeft()
+shiftRight()
+shiftDown()
+rotateClockwise()
+rotateCounterClockwise()
+notifyDrop()