⚠ 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
+getBoard()
+shiftLeft()
ForceEffect
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()
+checkGameOver()
+setBlock(block)
+checkCollision(positions)
+replaceCurrentBlock()
Effect
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()
+getLevelInitializers()
+getPlayers()
0…N
Observer Pattern
+shiftLeft()
+shiftRight()
+shiftDown()
+rotateClockwise()
+rotateCounterClockwise()
LevelThreeEffect
+getLevelNumber()
+setRandom()
+setNoRandom()
+onTurnStart()
+onDrop()
+onDropDone()
+getLevelNumber()
+getLevelNumber()
+getLevelNumber()
+getLevelNumber()
+setRandom()
+setNoRandom()
+onTurnStart()
+onDrop()
+onDropDone()
+getCurrentBlock()
+onTurnStart()
+getBoard()
+getNextBlock()
+getCurrentBlockDrop()
+getScore()
+getLevel()
+checkGameOver()
+changeLevel()
+shiftLeft()
+shiftRight()
+shiftDown()
+rotateClockwise()
+rotateCounterClockwise()
+drop()
+replaceCurrentBlock()
+getCurrentBlock()
+onTurnStart()
+getBoard()
+getNextBlock()
+getCurrentBlockDrop()
+getScore()
+getLevel()
+instantDrop()
+checkGameOver()
+shiftLeft()
+shiftRight()
+shiftDown()
+rotateClockwise()
+rotateCounterClockwise()
+drop()
+replaceCurrentBlock()
+getCurrentBlock()
+onTurnStart()
+getBoard()
+getNextBlock()
+getCurrentBlockDrop()
+getScore()
+getLevel()
+instantDrop()
+checkGameOver()
+shiftRight()
+getCells()
+transferToGrid()
+currentPositions()
+nextTurn()
+restart()
+getCurrentPlayer()
+getTurn()
+getHighScore()
+getGameOver()