Skip to content

Этот репозиторий содержит улучшенную версию игры Tetris на Python. Игра реализована с использованием библиотеки pygame и поддерживает фоновые мелодии, звуковые эффекты, сохранение/загрузку состояния и интерактивные меню (стартовое меню выбора уровня и меню паузы)

License

Notifications You must be signed in to change notification settings

QuadDarv1ne/Tetris-Enhanced

Repository files navigation

Tetris Enhanced — Инструкция

DOI ORCID

Описание

Этот репозиторий содержит улучшенную версию игры 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)

Быстрый старт

  1. Скопируйте tetris_enhanced.py в пустую папку.
  2. Поместите свои mp3-файлы (например, перечисленные в задаче) в эту папку или отредактируйте список MUSIC_FILES в начале скрипта, указав корректные пути.
  3. (Опционально) Создайте папку sounds/ и положите туда rotate.wav, drop.wav, line.wav для эффектов.
  4. Установите pygame и запустите игру: pip install pygame python 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

▶️ Версия 1.0

※ Предложения по сотрудничеству можете присылать на почту ※
📧 [email protected]

About

Этот репозиторий содержит улучшенную версию игры Tetris на Python. Игра реализована с использованием библиотеки pygame и поддерживает фоновые мелодии, звуковые эффекты, сохранение/загрузку состояния и интерактивные меню (стартовое меню выбора уровня и меню паузы)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages