Files
dz/solutions/69a474cdc46fd26feae69896_Практическое_задание__3__Память_и_подтве

Практическое задание №3: Память и подтверждение действий

Описание

В этом проекте реализована простая консольная игра «Память».
Игра состоит из двух режимов:

  1. Классический – игроку показывается последовательность случайных символов, после чего он должен её воспроизвести.
  2. С подтверждением действий – каждый ввод пользователя проверяется и при ошибке выводится сообщение об ошибке.

Для улучшения визуального восприятия использована библиотека 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'.
Попробуйте ещё раз.

Как добавить новые режимы

  1. Создайте новый файл game_modes/<mode_name>.py.
  2. Реализуйте класс GameMode с методами:
    • start(self): запускает игру
    • process_input(self, user_input: str) -> bool: обрабатывает ввод и возвращает True, если игра продолжается.
  3. Зарегистрируйте новый режим в main.py.

Тесты

Для проверки корректности работы можно использовать модульные тесты (если добавлены). Запуск:

pytest tests/

Если возникли вопросы, обращайтесь к авторам проекта или открывайте issue на GitHub.