Since the game is so clearly defined as a 10x20 it made sense to quickly move to representing memory in an array of some sort. As the blocks themselves can be represented by a single value a typed array is a good fit. In my typed array, I can choose to either store 0 and 1 for available and unavailable, or I could use the numeric value of the block letter (tetrominoes are named as T, L, J, S, Z, O).