[2] Добавлен раздел про наименование файлов тестов-лабиринтов
This commit is contained in:
parent
7a84310d5d
commit
de1170df68
|
|
@ -2,4 +2,5 @@
|
||||||
|
|
||||||
:::{toctree}
|
:::{toctree}
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
naming_maze
|
||||||
api
|
api
|
||||||
100
skorohodovsa/task_2/docs/source/naming_maze.md
Normal file
100
skorohodovsa/task_2/docs/source/naming_maze.md
Normal 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
|
||||||
Loading…
Reference in New Issue
Block a user