Have to echo what others have said about the movement, you've locked it into the grid but it seems like you're filtering inputs too early and are turning the player on the next row/column if they're over halfway through the current one instead of allowing them to turn up until they exit the current row/column. Aside from that issue the idea is great and the it looks fantastic!