init
This commit is contained in:
224
maps/TEST-MAPS-README.md
Normal file
224
maps/TEST-MAPS-README.md
Normal file
@@ -0,0 +1,224 @@
|
||||
# 🗺️ Тестовые карты для A* алгоритма
|
||||
|
||||
Эта папка содержит набор тестовых карт для проверки работы алгоритма A* с новыми правилами игры.
|
||||
|
||||
## 🎮 Новые правила
|
||||
|
||||
| Тип | Код | Символ | Правило |
|
||||
|-----|-----|--------|---------|
|
||||
| Дорога | 0 | ` ` | Ускорение ±2 |
|
||||
| Камень | 1 | `#` | Можно проезжать, нельзя останавливаться |
|
||||
| Снег | 2 | `~` | Ускорение ±1 |
|
||||
| Лёд | 3 | `=` | Ускорение 0 (инерция) |
|
||||
| Чекпоинт | 4 | `1-9` / `●` | Как дорога |
|
||||
|
||||
---
|
||||
|
||||
## 📂 Тестовые карты
|
||||
|
||||
### test-obstacles.json
|
||||
**Назначение**: Проверка проезда через препятствия
|
||||
|
||||
```
|
||||
S
|
||||
|
||||
# # # # # # # #
|
||||
# # # # # # # #
|
||||
# # # # # # # #
|
||||
# # # # # # # #
|
||||
# # # # # # # #
|
||||
# # # # # # # #
|
||||
# # # # # # # #
|
||||
1
|
||||
```
|
||||
|
||||
- Размер: 15×11
|
||||
- Чекпоинты: 1
|
||||
- Препятствия: 56
|
||||
- **Результат**: ✅ 4 хода
|
||||
|
||||
---
|
||||
|
||||
### test-snow.json
|
||||
**Назначение**: Проверка ограниченного маневрирования на снегу
|
||||
|
||||
```
|
||||
S
|
||||
|
||||
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
||||
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
||||
~ ~ ~ ~ 1 ~ ~ ~ ~ ~
|
||||
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
||||
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
||||
```
|
||||
|
||||
- Размер: 15×9
|
||||
- Чекпоинты: 1
|
||||
- Снег: 49 клеток
|
||||
- **Результат**: ✅ 3 хода
|
||||
- **Ускорения на снегу**: (1,1), (-1,0) — все в пределах ±1
|
||||
|
||||
---
|
||||
|
||||
### test-ice.json
|
||||
**Назначение**: Проверка инерции на льду
|
||||
|
||||
```
|
||||
S
|
||||
|
||||
= = = = = = = = = = =
|
||||
= = = = = = = = = = =
|
||||
= = = = = 1 = = = = =
|
||||
= = = = = = = = = = =
|
||||
= = = = = = = = = = =
|
||||
```
|
||||
|
||||
- Размер: 18×9
|
||||
- Чекпоинты: 1
|
||||
- Лёд: 54 клетки
|
||||
- **Результат**: ✅ 3 хода
|
||||
- **Поведение**: Алгоритм не планирует остановки на льду
|
||||
|
||||
---
|
||||
|
||||
### test-combined.json
|
||||
**Назначение**: Комплексная проверка всех типов поверхностей
|
||||
|
||||
```
|
||||
S
|
||||
|
||||
1
|
||||
# # # #
|
||||
# # # #
|
||||
# # # # 2
|
||||
# # # # ~ ~ ~ ~ ~
|
||||
~ ~ ~ ~ ~
|
||||
~ ~ 3 ~ ~
|
||||
~ ~ ~ ~ ~
|
||||
~ ~ ~ ~ ~ = = = =
|
||||
= = = =
|
||||
= 4 = =
|
||||
= = = =
|
||||
```
|
||||
|
||||
- Размер: 20×15
|
||||
- Чекпоинты: 4
|
||||
- Препятствия: 16
|
||||
- Снег: 24 клетки
|
||||
- Лёд: 15 клеток
|
||||
- **Результат**: ✅ 9 ходов
|
||||
- **Проверки**:
|
||||
- ✅ Проезд через препятствия
|
||||
- ✅ Ограниченное ускорение на снегу
|
||||
- ✅ Корректная работа на льду
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Запуск тестов
|
||||
|
||||
### Компиляция
|
||||
```bash
|
||||
cd /home/tactile/dev/dotnet/racing
|
||||
dotnet build racing-astar.csproj
|
||||
```
|
||||
|
||||
### Запуск отдельного теста
|
||||
```bash
|
||||
# Тест препятствий
|
||||
./bin/Debug/net8.0/racing-astar maps/test-obstacles.json
|
||||
|
||||
# Тест снега
|
||||
./bin/Debug/net8.0/racing-astar maps/test-snow.json
|
||||
|
||||
# Тест льда
|
||||
./bin/Debug/net8.0/racing-astar maps/test-ice.json
|
||||
|
||||
# Комплексный тест
|
||||
./bin/Debug/net8.0/racing-astar maps/test-combined.json
|
||||
```
|
||||
|
||||
### Запуск всех тестов
|
||||
```bash
|
||||
#!/bin/bash
|
||||
for map in maps/test-*.json; do
|
||||
echo "========================================="
|
||||
echo "Testing: $map"
|
||||
echo "========================================="
|
||||
./bin/Debug/net8.0/racing-astar "$map"
|
||||
echo ""
|
||||
done
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Ожидаемые результаты
|
||||
|
||||
| Карта | Ходов | Итераций | Время |
|
||||
|-------|-------|----------|-------|
|
||||
| test-obstacles.json | 4 | 24 | <0.05с |
|
||||
| test-snow.json | 3 | 42 | <0.05с |
|
||||
| test-ice.json | 3 | 34 | <0.05с |
|
||||
| test-combined.json | 9 | 21 | <0.05с |
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Легенда визуализации
|
||||
|
||||
### В картах JSON
|
||||
- `0` = дорога
|
||||
- `1` = камень (препятствие)
|
||||
- `2` = снег
|
||||
- `3` = лёд
|
||||
- `4` = чекпоинт
|
||||
|
||||
### В консольном выводе
|
||||
- `S` = старт
|
||||
- `1-9` = чекпоинты (номера)
|
||||
- `●` = чекпоинты ≥10
|
||||
- `#` = камни (можно проезжать)
|
||||
- `~` = снег (ускорение ±1)
|
||||
- `=` = лёд (инерция)
|
||||
- `.` = путь решения
|
||||
- ` ` = обычная дорога
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Создание собственной тестовой карты
|
||||
|
||||
Пример минимальной карты:
|
||||
```json
|
||||
{
|
||||
"map": [
|
||||
[0, 0, 0, 0, 0],
|
||||
[0, 1, 1, 1, 0],
|
||||
[0, 0, 4, 0, 0],
|
||||
[0, 2, 2, 2, 0],
|
||||
[0, 0, 0, 0, 0]
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
**Рекомендации**:
|
||||
1. Первая ячейка типа `0` (дорога) становится стартом
|
||||
2. Чекпоинты обозначайте типом `4`
|
||||
3. Карта читается сверху вниз (первая строка JSON = верх карты)
|
||||
4. Y-координаты инвертируются автоматически
|
||||
|
||||
---
|
||||
|
||||
## 📖 Дополнительные ресурсы
|
||||
|
||||
- `/TESTING-SUMMARY.md` - Полная сводка тестирования
|
||||
- `/TEST-RESULTS.md` - Детальные результаты каждого теста
|
||||
- `/ASTAR-README.md` - Документация алгоритма A*
|
||||
- `/MAP-FORMAT.md` - Формат карт
|
||||
|
||||
---
|
||||
|
||||
## ✅ Статус
|
||||
|
||||
Все тестовые карты проверены и работают корректно.
|
||||
Последнее тестирование: **19 октября 2025**
|
||||
|
||||
**100% тестов пройдено успешно!** 🎉
|
||||
|
||||
Reference in New Issue
Block a user