The code snippet above comes from a C++ class method that renders the block squares to the screen. I chose to start at the top of the board (i.e. the loop starts at 21) and work my way down because there is a visible lag as the microcontroller updates large parts of the screen (like when many rows are eliminated at once). This will give an effect of the pieces moving down, as higher rows are rendered first.