Идея: создать небольшую интересную версию классического Тетриса, используя библиотеку Pygame. Игрок управляет падающими блоками, и пытается составить сплошные горизонтальные линии. Очки начисляются за каждую завершенную линию, после чего линия исчезает, освобождая место для новых блоков.
Котик Андрей и Фролов Максим
-
Название проекта: "PyTetris"
-
Цель проекта: Создать играбельную версию классической игры Тетрис с использованием библиотеки Pygame.
-
Целевая аудитория: Люди, знакомые с классической игрой Тетрис, и новички, желающие попробовать свои силы в этой головоломке.
-
Функциональные требования:
4.1. Игровое поле:
- Игровое поле должно представлять собой сетку 10x20 клеток (стандартный размер).
- Каждая клетка может быть пустой или занятой частью тетрамино.
- На поле отображаются падающие тетрамино и уже зафиксированные блоки.
- Границы поля четко обозначены.
4.2. Тетрамино (фигуры):
- Необходимо реализовать 7 типов тетрамино (I, J, L, O, S, T, Z).
- Тетрамино должны состоять из 4 блоков и иметь возможность вращаться на 90 градусов по часовой стрелке.
- Каждому типу тетрамино присваивается свой цвет.
- Тетрамино должны появляться в верхней части игрового поля.
4.3. Управление:
- Игрок управляет падающим тетрамино с помощью следующих клавиш:
- Стрелка влево: сдвиг тетрамино влево.
- Стрелка вправо: сдвиг тетрамино вправо.
- Стрелка вниз: ускорение падения тетрамино.
- Стрелка вверх/клавиша "пробел": вращение тетрамино по часовой стрелке.
4.4. Падение тетрамино:
- Тетрамино должны автоматически падать вниз с определенной скоростью.
- Скорость падения может увеличиваться со временем или с ростом уровня.
- При достижении дна или столкновении с другими блоками тетрамино фиксируется на месте.
4.5. Заполнение линий:
- Если горизонтальная линия полностью заполнена блоками, она должна быть удалена.
- Все блоки, находящиеся выше удаленной линии, должны сдвинуться вниз на одну клетку.
4.6. Начисление очков:
- За каждую удаленную линию начисляются очки.
- Количество начисляемых очков может увеличиваться за одновременное удаление нескольких линий.
4.7. Уровень:
- Игра должна иметь несколько уровней сложности.
- С каждым уровнем скорость падения тетрамино должна увеличиваться.
4.8. Конец игры:
- Игра должна заканчиваться, когда новая тетрамино не может появиться на поле из-за того, что верхняя часть заполнена блоками.
- После завершения игры должен отображаться экран с итоговым счетом и опцией начать игру заново.
4.9. Интерфейс пользователя (UI):
- Отображение текущего счета.
- Отображение следующего падающего тетрамино (preview).
- Отображение текущего уровня.
- Четкий, лаконичный и интуитивно понятный интерфейс.
4.10 Звук * Звук падения тетрамино * Звук удаления линии * Музыка на фоне
-
Нефункциональные требования:
- Производительность: Игра должна работать плавно, без заметных задержек.
- Удобство использования: Интерфейс должен быть интуитивно понятен и удобен для пользователя.
- Простота кода: Код должен быть хорошо структурированным и легким для понимания и модификации.
- Кроссплатформенность: Код должен быть совместимым с различными операционными системами (Windows, MacOS, Linux).
- Надежность: Игра должна быть стабильной и не вызывать ошибок во время игры.
-
Используемые технологии:
- Язык программирования: Python 3.x
- Библиотека: Pygame
- Дополнительные библиотеки: (могут потребоваться, например, для работы со звуком)
-
Этапы разработки:
- Настройка Pygame: Создание окна, инициализация необходимых модулей.
- Реализация игрового поля: Создание сетки и отрисовка ее на экране.
- Реализация тетрамино: Создание классов для каждого типа тетрамино, их отрисовка и вращение.
- Реализация управления: Обработка ввода с клавиатуры и перемещение тетрамино.
-
Реализация падения: Автоматическое падение и фиксация тетрамино.
-
Удаление линий: Реализация проверки и удаления заполненных линий.
-
Начисление очков и уровней: Реализация логики начисления очков и усложнения игры.
-
Реализация конца игры: Реализация окончания игры и отображения итогового счета.
-
Реализация UI: Отображение необходимой информации.
-
Реализация Звука Добавление звукового сопровождения
-
Тестирование: Проверка на ошибки и корректировка.
Добавлен первый патч