From 24f09fe830acc83cd5046d65f4f43ceb9c05caea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=B8=D1=8F=20=D0=91=D0=B5=D1=80=D0=B4?= =?UTF-8?q?=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2=D0=B0?= Date: Wed, 27 May 2026 08:40:44 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=BA=D1=82=D0=B8=D1=87?= =?UTF-8?q?=D0=B5=D1=81=D0=BA=D0=BE=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=E2=84=963:=20=D0=9F=D0=B0=D0=BC=D1=8F=D1=82?= =?UTF-8?q?=D1=8C=20=D0=B8=20=D0=BF=D0=BE=D0=B4=D1=82=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=B6=D0=B4=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=B5=D0=B9=D1=81?= =?UTF-8?q?=D1=82=D0=B2=D0=B8=D0=B9:=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md | 133 ++++++++++-------- 1 file changed, 77 insertions(+), 56 deletions(-) diff --git a/solutions/69a474cdc46fd26feae69896_Практическое_задание__3__Память_и_подтве/README.md b/solutions/69a474cdc46fd26feae69896_Практическое_задание__3__Память_и_подтве/README.md index fa77f83..28a5bfa 100644 --- a/solutions/69a474cdc46fd26feae69896_Практическое_задание__3__Память_и_подтве/README.md +++ b/solutions/69a474cdc46fd26feae69896_Практическое_задание__3__Память_и_подтве/README.md @@ -1,91 +1,112 @@ -# Практическое задание №3: Память и подтверждение действий +# Практическое задание №3: Память и подтверждение действий -## Описание -В этом проекте реализована простая консольная утилита, которая демонстрирует работу с памятью (сохраняет введённые пользователем данные) и подтверждением действий. Для улучшения визуального оформления используется библиотека **rich**. +## Описание +В этом проекте реализована простая консольная игра «Память». +Игра состоит из двух режимов: -Основные возможности: -- Ввод данных пользователем. -- Сохранение введённых значений в памяти программы. -- Запрос подтверждения перед выполнением критических операций. -- Красивый вывод сообщений, ошибок и таблиц с помощью `rich`. +1. **Классический** – игроку показывается последовательность случайных символов, после чего он должен её воспроизвести. +2. **С подтверждением действий** – каждый ввод пользователя проверяется и при ошибке выводится сообщение об ошибке. -## Установка зависимостей +Для улучшения визуального восприятия использована библиотека `rich`, которая позволяет красиво форматировать текст в терминале (цвета, таблицы, индикаторы прогресса). + +## Структура проекта +``` +memory_game/ +├── main.py # точка входа – запускает игру +├── game.py # логика игры и вспомогательные функции +└── requirements.txt +``` + +## Установка зависимостей ```bash -# Создайте виртуальное окружение (необязательно) -python -m venv .venv -source .venv/bin/activate # Windows: .venv\Scripts\activate +# Клонируйте репозиторий (если ещё не сделали это) +git clone https://github.com/your-username/memory_game.git +cd memory_game -# Установите зависимости из requirements.txt +# Создайте виртуальное окружение (рекомендуется) +python -m venv .venv +source .venv/bin/activate # Windows: .\.venv\Scripts\activate + +# Установите зависимости из файла requirements.txt pip install -r requirements.txt ``` -`requirements.txt` содержит: +`requirements.txt` содержит только одну строку: ```text rich>=13.0.0 ``` -## Запуск проекта +## Запуск программы -У вас есть два основных скрипта, которые можно запускать отдельно. - -### 1. `memory_confirm.py` -Главный скрипт, демонстрирующий работу памяти и подтверждения. +### 1. Классический режим ```bash -python memory_confirm.py +python main.py classic ``` -Пример работы: +Игра начнётся с простого режима «памяти». В терминале будет показана последовательность символов, затем вы будете приглашены ввести её. -``` -Введите имя: Alice -Вы ввели: Alice -Хотите сохранить это значение? (y/n): y -Значение сохранено. -Текущая память: -┌─────┬───────────┐ -│ № │ Значение │ -├─────┼───────────┤ -│ 1 │ Alice │ -└─────┴───────────┘ +### 2. Режим подтверждения действий + +```bash +python main.py confirm ``` -### 2. `utils.py` -Модуль с вспомогательными функциями (не запускается напрямую, но используется в `memory_confirm.py`). +В этом режиме после каждого ввода проверяется правильность и при ошибке выводится красное сообщение об ошибке. + +### 3. Помощь + +```bash +python main.py --help +``` + +Выводит краткое описание доступных команд. ## Пример использования -```python -from utils import confirm_action, display_memory +```text +$ python main.py classic +Добро пожаловать в игру «Память»! +Введите 'y' для начала, 'q' чтобы выйти: y -# Сохраняем данные -data = "Привет мир" +Секвенция: + 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 -# Запрашиваем подтверждение перед сохранением -if confirm_action(f"Сохранить '{data}'?"): - memory.append(data) - print("Данные сохранены.") -else: - print("Операция отменена.") - -# Показать содержимое памяти -display_memory(memory) +Ваша задача — воспроизвести эту последовательность. +Введите строку (разделяйте символы пробелом): ``` -> **Важно**: В примере выше переменная `memory` должна быть объявлена как список в глобальной области видимости скрипта. - -## Структура проекта +Если пользователь вводит правильную последовательность, выводится: ```text -. -├── memory_confirm.py # Основной исполняемый файл -├── utils.py # Модуль вспомогательных функций -├── requirements.txt # Список зависимостей -└── README.md # Это руководство +✅ Поздравляем! Вы успешно запомнили всю последовательность! +``` + +При ошибке в режиме подтверждения: + +```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/ ``` --- -Если возникнут вопросы, обращайтесь в раздел Issues проекта. Happy coding! \ No newline at end of file +Если возникли вопросы, обращайтесь к авторам проекта или открывайте issue на GitHub. \ No newline at end of file