[2] Добавлен раздел про наименование файлов тестов-лабиринтов

This commit is contained in:
SerKin0 2026-05-22 23:12:50 +03:00
parent 7a84310d5d
commit de1170df68
2 changed files with 101 additions and 0 deletions

View File

@ -2,4 +2,5 @@
:::{toctree}
:maxdepth: 2
naming_maze
api

View File

@ -0,0 +1,100 @@
# Этап 2. Загрузка лабиринта из файла
Во втором этапе разработки необходимо реализовать загрузку лабиринта из текстового файла, где:
- `#` стена;
- ` ` проход;
- `S` старт;
- `E` выход.
## Систематизация файлов
Для удобного хранения лабиринтов было решено сделать систему наименования текстовых файлов в папке `source/templates`.
Общая структура:
```
{размер}_{свойство 1}-{свойство 2}-{свойство n}_{версия}.txt
```
### Размер
Формат: `{ширина}x{высота}`
| Пример | Значение |
|--------|----------|
| `10x10` | 10×10 клеток |
| `50x50` | 50×50 клеток |
| `100x100` | 100×100 клеток |
| `30x30` | 30×30 клеток |
| `20x20` | 20×20 клеток |
### Свойства
| Свойство | Код | Описание |
| ------------ | ----------- | -------------------------------------------------------------------------------------------- |
| Простой путь | `path` | Существует маршрут от S до E |
| Тупики | `deadends` | Лабиринт специально содержит тупики (могут быть и в других типах, но здесь — гарантированно) |
| Запутанный | `spaghetti` | Сложная структура с циклами и ложными ходами |
| Пустой | `empty` | Нет стен (`#`), только пробелы, S и E |
| Без выхода | `noexit` | В лабиринте отсутствует символ `E` |
### Версия
Формат: `v{номер}`
- `v1`, `v2`, `v10`
### Примеры
#### Маленькие (10×10, простой путь)
```
10x10_path_v1.txt
10x10_path_v2.txt
...
10x10_path_v10.txt
```
#### Средние (50×50, тупики)
```
50x50_deadends_v1.txt
50x50_deadends_v2.txt
...
50x50_deadends_v10.txt
```
#### Большие (100×100, запутанные)
```
100x100_spaghetti_v1.txt
100x100_spaghetti_v2.txt
...
100x100_spaghetti_v10.txt
```
#### Пустые (30×30)
```
30x30_empty_v1.txt
30x30_empty_v2.txt
...
30x30_empty_v10.txt
```
#### Без выхода (20×20)
```
20x20_noexit_v1.txt
20x20_noexit_v2.txt
...
20x20_noexit_v10.txt
```
#### Комбинированные свойства
```
50x50_deadends-noexit_v1.txt
100x100_spaghetti-noexit_v1.txt
10x10_path-empty_v1.txt (избыточно, но допустимо)
```
### Примечание
- Регистр имён файлов: **нижний регистр**
- Разделители: только `_` и `-`
- Расширение: `.txt`
- Кодировка: UTF-8