В реализации обязательно должны использоваться Q_PROPERTY
для инициализации размера поля (смотреть пример на гитхабе).
-
Игровое поле
- сетка тетриса, отвечающая за рисование фигур. Обязательно виджетом поля должен быть пользовательский класс, где присутствую два
Q_PROPERTY
(количество строк / столбцов сетки).
- сетка тетриса, отвечающая за рисование фигур. Обязательно виджетом поля должен быть пользовательский класс, где присутствую два
-
Следующая фигура.
- Помимо текущей падающей фигуры в поле, необходимо отдельно показывать следующую фигуру, которая появится, как только текущая упадет.
- Кроме изображения фигуры обязательно должна быть и подпись о том, что это такое
-
Счетчик
- В игре необходимо подсчитывать очки, для этого необходимо создать счетчик. Какой из виджетов выбрать для отображения – решать вам. Можно, к примеру, использовать
QLCDNumber
. - Подпись того, что это счетчик очков – обязательна.
- В игре необходимо подсчитывать очки, для этого необходимо создать счетчик. Какой из виджетов выбрать для отображения – решать вам. Можно, к примеру, использовать
-
Кнопки
- Начать новую игру
- Выйти
-
Меню
QMenuBar
- Игра
QMenu
- Начать новую игру
QAction
- Выйти
QAction
- Начать новую игру
- Справка - выводит информацию о правилах и управлении (кнопках)
- Игра
- Фигуры должны быть разного размера 1-4 клетки. Используйте примитивную фигуру (1 - 4 вертикальные клетки).
- Движение фигур должно происходить автоматически (возможно, с помощью
QTimer
) - Должна быть возможность двигать фигуру по сетке горизонтально.
- Должна быть возможность ускорить падение фигуры (уронить ее). Можно как моментально, так и просто ускоренно. Второй вариант предпочтительнее.
- Заполненные линии должны исчезать, а все остальные фигуры падать вниз (аналогично, как это происходит в обычном тетрисе)
Очки начисляются по собранным линиям. Количество очков за собранную линию можете выбрать произвольно.
- Добавить в реализацию фигуры разной геометрии
- Добавить в реализацию возможность поворота фигуры