Nicely done! Quite enjoy the graphics and sounds.
Unfortunately I've managed to hang the application. I can't strictly reproduce it, but it seems like pressing certain key combination might put the game into an infinite loop or similar.
In general I've noticed that the input handling is acting a bit odd at times. Like the rotation key only works half of the times and certainly not when you're pressing it and at the same time an arrow key. You might want to rethink the input code a bit.
Additionally I highly recommend to go with a more common key layout. Not having the rotation key on the up arrow feels really weird and I kept pressing it accidentally.
I think the following layout is more common and will be a lot easier to use (for me).
Game Action | Keyboard | Numpad |
Move Left | LEFT Arrow | Numpad 4 |
Move Right | RIGHT Arrow | Numpad 6 |
Hard Drop | Space Bar | Numpad 8 |
Soft Drop | DOWN Arrow | Numpad 2 |
Rotate Right | UP Arrow, X | Numpad 1, 5, 9 |
Rotate Left | Control, Z | Numpad 3, 7 |
Hold | SHIFT, C | Numpad 0 |
Pause | ESC, F1, P | |