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

This commit is contained in:
2026-05-27 08:40:44 +00:00
parent b3dfe6e201
commit 24f09fe830
@@ -1,91 +1,112 @@
# Практическое задание №3: Память и подтверждение действий # Практическое задание №3: Память и подтверждение действий
## Описание ## Описание
В этом проекте реализована простая консольная утилита, которая демонстрирует работу с памятью (сохраняет введённые пользователем данные) и подтверждением действий. Для улучшения визуального оформления используется библиотека **rich**. В этом проекте реализована простая консольная игра «Память».
Игра состоит из двух режимов:
Основные возможности: 1. **Классический** – игроку показывается последовательность случайных символов, после чего он должен её воспроизвести.
- Ввод данных пользователем. 2. **С подтверждением действий** – каждый ввод пользователя проверяется и при ошибке выводится сообщение об ошибке.
- Сохранение введённых значений в памяти программы.
- Запрос подтверждения перед выполнением критических операций.
- Красивый вывод сообщений, ошибок и таблиц с помощью `rich`.
## Установка зависимостей Для улучшения визуального восприятия использована библиотека `rich`, которая позволяет красиво форматировать текст в терминале (цвета, таблицы, индикаторы прогресса).
## Структура проекта
```
memory_game/
├── main.py # точка входа – запускает игру
├── game.py # логика игры и вспомогательные функции
└── requirements.txt
```
## Установка зависимостей
```bash ```bash
# Создайте виртуальное окружение (необязательно) # Клонируйте репозиторий (если ещё не сделали это)
python -m venv .venv git clone https://github.com/your-username/memory_game.git
source .venv/bin/activate # Windows: .venv\Scripts\activate cd memory_game
# Установите зависимости из requirements.txt # Создайте виртуальное окружение (рекомендуется)
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\activate
# Установите зависимости из файла requirements.txt
pip install -r requirements.txt pip install -r requirements.txt
``` ```
`requirements.txt` содержит: `requirements.txt` содержит только одну строку:
```text ```text
rich>=13.0.0 rich>=13.0.0
``` ```
## Запуск проекта ## Запуск программы
У вас есть два основных скрипта, которые можно запускать отдельно. ### 1. Классический режим
### 1. `memory_confirm.py`
Главный скрипт, демонстрирующий работу памяти и подтверждения.
```bash ```bash
python memory_confirm.py python main.py classic
``` ```
Пример работы: Игра начнётся с простого режима «памяти». В терминале будет показана последовательность символов, затем вы будете приглашены ввести её.
``` ### 2. Режим подтверждения действий
Введите имя: Alice
Вы ввели: Alice ```bash
Хотите сохранить это значение? (y/n): y python main.py confirm
Значение сохранено.
Текущая память:
┌─────┬───────────┐
│ № │ Значение │
├─────┼───────────┤
│ 1 │ Alice │
└─────┴───────────┘
``` ```
### 2. `utils.py` В этом режиме после каждого ввода проверяется правильность и при ошибке выводится красное сообщение об ошибке.
Модуль с вспомогательными функциями (не запускается напрямую, но используется в `memory_confirm.py`).
### 3. Помощь
```bash
python main.py --help
```
Выводит краткое описание доступных команд.
## Пример использования ## Пример использования
```python ```text
from utils import confirm_action, display_memory $ 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 ```text
. ✅ Поздравляем! Вы успешно запомнили всю последовательность!
├── memory_confirm.py # Основной исполняемый файл ```
├── utils.py # Модуль вспомогательных функций
├── requirements.txt # Список зависимостей При ошибке в режиме подтверждения:
└── README.md # Это руководство
```text
❌ Ошибка: ожидается 'C', но получено 'D'.
Попробуйте ещё раз.
```
## Как добавить новые режимы
1. Создайте новый файл `game_modes/<mode_name>.py`.
2. Реализуйте класс `GameMode` с методами:
- `start(self)`: запускает игру
- `process_input(self, user_input: str) -> bool`: обрабатывает ввод и возвращает `True`, если игра продолжается.
3. Зарегистрируйте новый режим в `main.py`.
## Тесты
Для проверки корректности работы можно использовать модульные тесты (если добавлены). Запуск:
```bash
pytest tests/
``` ```
--- ---
Если возникнут вопросы, обращайтесь в раздел Issues проекта. Happy coding! Если возникли вопросы, обращайтесь к авторам проекта или открывайте issue на GitHub.