I used a 4x4x4 array for each shape because it is less messing around than writing a rotation algorithm that uses the correct (different) centre of rotation for each shape according to the original game. I will probably have to tweak the position of some of them.