As tetrominoes are very crucial to the gameplay of Tetris, we must properly model these elements programmatically. In order to do this, let's think of every tetromino piece as a building block. Building blocks have a set of features that they possess. These features can be categorized into characteristics and behaviors.