Этот репозиторий содержит улучшенную версию игры Tetris на Python (один файл): tetris_enhanced.py.
Игра реализована с использованием библиотеки pygame и поддерживает фоновые мелодии, звуковые эффекты,
сохранение/загрузку состояния и интерактивные меню (стартовое меню выбора уровня и меню паузы).
tetris_enhanced.py— основной исполняемый файл игры.- (опционально) Папка
sounds/для звуковых эффектов:rotate.wav,drop.wav,line.wav. - Файлы музыки (mp3) — поместите в ту же папку, что и скрипт, либо укажите другие пути в массиве
MUSIC_FILES. tetris_save.json— файл автосохранения/ручного сохранения (создаётся при использовании функции Сохранить).
- Python 3.7+ (рекомендуется 3.8+)
- Пакет
pygame(установить командойpip install pygame)
- Скопируйте
tetris_enhanced.pyв пустую папку. - Поместите свои mp3-файлы (например, перечисленные в задаче) в эту папку или отредактируйте
список
MUSIC_FILESв начале скрипта, указав корректные пути. - (Опционально) Создайте папку
sounds/и положите тудаrotate.wav,drop.wav,line.wavдля эффектов. - Установите pygame и запустите игру:
pip install pygamepython tetris_enhanced.py
- ← / → — перемещение фигуры влево/вправо
- ↓ — мягкое падение
- Space — жёсткое падение
- Z или ↑ — поворот по часовой
- X — поворот против часовой
- A / S — поворот на 180°
- C или Shift — удержание (hold)
- P — открыть меню паузы
- R — перезапуск
- Esc / Q — выход
- Стартовое меню: выбор начального уровня (стрелки ← →) и музыки (↑ ↓), Enter — старт.
- Меню паузы (P): кнопки Продолжить, Сохранить, Загрузить, Следующая музыка, Предыдущая, Выйти.
- Сохранение/загрузка: используется JSON-файл
tetris_save.json. Кнопка "Сохранить" экспортирует текущее состояние, "Загрузить" — попытается восстановить игру из файла. - Музыка: поддерживается плейлист mp3; при окончании трека автоматически переключается следующий.
- Звуковые эффекты: если есть wav-файлы в
sounds/, будут проигрываться при повороте, падении и очистке линий.
- Состояние сериализуется в JSON и хранит:
- сетку игрового поля (grid)
- мешок и очередь следующих фигур (bag, next_queue)
- текущую фигуру (kind, x, y, rotation)
- hold, очки, уровень, линии, combo, back_to_back
- Файл:
tetris_save.json(можно редактировать вручную, но соблюдать структуру)
- Если музыка не проигрывается, проверьте имена файлов в
MUSIC_FILESи что файлы действительно в папке. - Если звуки не играют, убедитесь, что
sounds/существует и содержит корректные WAV-файлы. - Можно отрегулировать громкость через
pygame.mixer.music.set_volume(значение)в AudioManager. - Для быстрой отладки можно временно отключить музыку/звуки, если они вызывают ошибки на вашей платформе.
- Эффекты частиц и анимация при очистке линий
- Таблица рекордов (несколько слотов сохранения, локальный лидерборд)
- Интеграция с
pygame_menuдля более выразительных меню и настроек - Онлайновые таблицы рекордов (через простой REST API)
- Поддержка горячих клавиш для смены громкости и включения/выключения музыки
- Этот скрипт предоставлен как пример и может быть модифицирован под ваши нужды.
- Используйте и распространяйте на ваш страх и риск; если планируете коммерческое использование, проверьте права на музыкальные файлы и сторонние ресурсы.
- Если нужна помощь с доработкой (добавить эффекты, рекорды, изменить механику), опишите пожелания — я помогу с реализацией.
- Каждая строка этого README начинается с символа '#', как вы просили. Чтобы получить обычный README, просто удалите ведущие символы '#' и пробелы в начале строк.
Этот проект лицензирован под лицензией MIT
Для получения дополнительной информации ознакомьтесь с файлом LICENSE
💼 Автор: Дуплей Максим Игоревич
📲 Telegram №1: @quadd4rv1n7
📲 Telegram №2: @dupley_maxim_1999
📅 Дата: 22.08.2025
※ Предложения по сотрудничеству можете присылать на почту ※
📧 maksimqwe42@mail.ru