6.3 KiB
6.3 KiB
🗺️ Тестовые карты для 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 ходов
- Проверки:
- ✅ Проезд через препятствия
- ✅ Ограниченное ускорение на снегу
- ✅ Корректная работа на льду
🚀 Запуск тестов
Компиляция
cd /home/tactile/dev/dotnet/racing
dotnet build racing-astar.csproj
Запуск отдельного теста
# Тест препятствий
./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
Запуск всех тестов
#!/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)== лёд (инерция).= путь решения= обычная дорога
🔧 Создание собственной тестовой карты
Пример минимальной карты:
{
"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]
]
}
Рекомендации:
- Первая ячейка типа
0(дорога) становится стартом - Чекпоинты обозначайте типом
4 - Карта читается сверху вниз (первая строка JSON = верх карты)
- Y-координаты инвертируются автоматически
📖 Дополнительные ресурсы
/TESTING-SUMMARY.md- Полная сводка тестирования/TEST-RESULTS.md- Детальные результаты каждого теста/ASTAR-README.md- Документация алгоритма A*/MAP-FORMAT.md- Формат карт
✅ Статус
Все тестовые карты проверены и работают корректно.
Последнее тестирование: 19 октября 2025
100% тестов пройдено успешно! 🎉