-
[blocks] -----shiftRight ----> [blocks]
-
[blocks] -----shiftLeft----> [blocks]
-
[[blocks]] -----shiftUp ----> [[blocks]]
-
[[blocks]] -----shiftDown ----> [[blocks]]
-
[[blocks]] ------incrementMoveCountOnVisibleBlocks -----> [[blocks]]
-
[[blocks]] ------UpdateRandomBlockToVisible -----> [[blocks]]
-
[[blocks]] -------GameOver--------> bool
[[blocks]] -----shiftUp ----> [[blocks]]
[[blocks]] columnNumber -----getColumn----> column ([blocks])
column ----shiftLeft--> shiftedColumn ([blocks])
shiftedColumns, direction -------mergeSameValueBlocks ----->[blocks]
shiftedColumn, columnNumber, [[],[],[],[]]--convertRowsToColumn--> [[b],[l],[o],[k]]
[[blocks]] -----shiftDown ----> [[blocks]]
[[blocks]] columnNumber -----getColumn----> column ([blocks])
column ----shiftRight--> shiftedColumn ([blocks])
shiftedColumns, direction -------mergeSameValueBlocks ----->[blocks]
shiftedColumn, columnNumber, [[],[],[],[]]--convertRowsToColumn--> [[b],[l],[o],[k]]
[[blocks]] ------incrementMoveCountOnVisibleBlocks -----> [[blocks]]
block --------isVisible? ---------> bool
block, true -----updateCount------> UpdatedBlock
[[blocks]] ------UpdateRandomBlockToVisible -----> [[blocks]]
[[blocks]] -----numInVisibileBlocks--------> number
number -------randomNumber -----------> Randomnumber
[[blocks]], randomNumber --------displayNewBlock --------> [[blocks]]
[[blocks]] -------GameOver--------> bool
[[blocks]] -----numInVisibileBlocks--------> number
[[blocks]] ------hasMaxValue---------------> bool