Files
paper-racing-gpi/maps/TEST-MAPS-README.md
2025-10-20 19:35:38 +05:00

225 lines
6.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🗺️ Тестовые карты для 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% тестов пройдено успешно!** 🎉