Я бы сделал так.
1. Создал бы класс, в котором описал общую игровую фигуру. Ее координаты и перемещение. Координаты хранил бы в виде X0, Y0; X1, Y1; X2, Y2; X3, Y3; и в конструктор передавал бы тип фигуры, а с помощью switch строил фигуру.
2. Вызыв фигуру сделал бы с помощью генерации случайного числа и потом сравнивал бы через enum.
enum Figure { green, red, yellow... }
Но я немного не понял, что вы имеете в виду под кубиком. То есть один квадратик с помощью которого строится тетромино? Если да, то это явно можно упростить до написание одного класса, в котором генерировать фигуру. Также, если вы делаете обычный тетрис, с 7 фигурами, то вместо случайного числа используйте
сумку с фигурами, рекомандциии по ней написаны в
Википедии по тетрису.
3. Что вы используете для хранения фигур на игровом поле? Я бы сделал отдельный класс, в котором использовал обычный двумерный массив для хранения всех фигур на поле, с методами для удаления заполненных линий.