3.2 KiB
3.2 KiB
Этап 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