Real game using polymorphism to control different objects
Game using tile-based collision detection.
Use state machine to move from level to level.
Change levels based on number of lines cleared.
Pieces are randomly generated (Mersenne Twister).
Score based on number of lines cleared.
Loss and restart available.