# Практическое задание №3: Память и подтверждение действий ## Описание В этом проекте реализована простая консольная игра «Память». Игра состоит из двух режимов: 1. **Классический** – игроку показывается последовательность случайных символов, после чего он должен её воспроизвести. 2. **С подтверждением действий** – каждый ввод пользователя проверяется и при ошибке выводится сообщение об ошибке. Для улучшения визуального восприятия использована библиотека `rich`, которая позволяет красиво форматировать текст в терминале (цвета, таблицы, индикаторы прогресса). ## Структура проекта ``` memory_game/ ├── main.py # точка входа – запускает игру ├── game.py # логика игры и вспомогательные функции └── requirements.txt ``` ## Установка зависимостей ```bash # Клонируйте репозиторий (если ещё не сделали это) 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` содержит только одну строку: ```text rich>=13.0.0 ``` ## Запуск программы ### 1. Классический режим ```bash python main.py classic ``` Игра начнётся с простого режима «памяти». В терминале будет показана последовательность символов, затем вы будете приглашены ввести её. ### 2. Режим подтверждения действий ```bash python main.py confirm ``` В этом режиме после каждого ввода проверяется правильность и при ошибке выводится красное сообщение об ошибке. ### 3. Помощь ```bash python main.py --help ``` Выводит краткое описание доступных команд. ## Пример использования ```text $ 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 Ваша задача — воспроизвести эту последовательность. Введите строку (разделяйте символы пробелом): ``` Если пользователь вводит правильную последовательность, выводится: ```text ✅ Поздравляем! Вы успешно запомнили всю последовательность! ``` При ошибке в режиме подтверждения: ```text ❌ Ошибка: ожидается 'C', но получено 'D'. Попробуйте ещё раз. ``` ## Как добавить новые режимы 1. Создайте новый файл `game_modes/.py`. 2. Реализуйте класс `GameMode` с методами: - `start(self)`: запускает игру - `process_input(self, user_input: str) -> bool`: обрабатывает ввод и возвращает `True`, если игра продолжается. 3. Зарегистрируйте новый режим в `main.py`. ## Тесты Для проверки корректности работы можно использовать модульные тесты (если добавлены). Запуск: ```bash pytest tests/ ``` --- Если возникли вопросы, обращайтесь к авторам проекта или открывайте issue на GitHub.