Практическое задание №3: Память и подтверждение действий
Описание
В этом проекте реализована простая консольная игра «Память».
Игра состоит из двух режимов:
- Классический – игроку показывается последовательность случайных символов, после чего он должен её воспроизвести.
- С подтверждением действий – каждый ввод пользователя проверяется и при ошибке выводится сообщение об ошибке.
Для улучшения визуального восприятия использована библиотека rich, которая позволяет красиво форматировать текст в терминале (цвета, таблицы, индикаторы прогресса).
Структура проекта
memory_game/
├── main.py # точка входа – запускает игру
├── game.py # логика игры и вспомогательные функции
└── requirements.txt
Установка зависимостей
# Клонируйте репозиторий (если ещё не сделали это)
git clone https://github.com/your-username/memory_game.git
cd memory_game
# Создайте виртуальное окружение (рекомендуется)
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\activate
# Установите зависимости из файла requirements.txt
pip install -r requirements.txt
requirements.txt содержит только одну строку:
rich>=13.0.0
Запуск программы
1. Классический режим
python main.py classic
Игра начнётся с простого режима «памяти». В терминале будет показана последовательность символов, затем вы будете приглашены ввести её.
2. Режим подтверждения действий
python main.py confirm
В этом режиме после каждого ввода проверяется правильность и при ошибке выводится красное сообщение об ошибке.
3. Помощь
python main.py --help
Выводит краткое описание доступных команд.
Пример использования
$ python main.py classic
Добро пожаловать в игру «Память»!
Введите 'y' для начала, 'q' чтобы выйти: y
Секвенция:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Ваша задача — воспроизвести эту последовательность.
Введите строку (разделяйте символы пробелом):
Если пользователь вводит правильную последовательность, выводится:
✅ Поздравляем! Вы успешно запомнили всю последовательность!
При ошибке в режиме подтверждения:
❌ Ошибка: ожидается 'C', но получено 'D'.
Попробуйте ещё раз.
Как добавить новые режимы
- Создайте новый файл
game_modes/<mode_name>.py. - Реализуйте класс
GameModeс методами:start(self): запускает игруprocess_input(self, user_input: str) -> bool: обрабатывает ввод и возвращаетTrue, если игра продолжается.
- Зарегистрируйте новый режим в
main.py.
Тесты
Для проверки корректности работы можно использовать модульные тесты (если добавлены). Запуск:
pytest tests/
Если возникли вопросы, обращайтесь к авторам проекта или открывайте issue на GitHub.