Даже примерная архитектура, класс фигуры, абстрактный, с количеством точек, и их изначальными координатами, методы поворот по часовой, против часовой, проверка на достижение дна и пересечение с заполненным и ячейками. потом наследники - конкретные фигуры где и задаются свойства с координатами точек, переопределяются методы поворота и и проверки дна/пересечения, и потом контроллер на это все, который запустит все и увяжет с таймером