4.2 KiB
4.2 KiB
Интеграция A* Solver в Визуализатор
Что добавлено
В визуализатор решений (player.html) добавлена кнопка "🧠 Найти решение", которая автоматически решает загруженную карту через микросервис A*.
Изменения в файлах
player.html
- Добавлена кнопка "🧠 Найти решение" между "Загрузить карту" и "Загрузить решение"
- Добавлен div для отображения статуса решения
player.js
- Добавлена функция
solveMap()- вызывает APIhttp://localhost:5000/solve - Проверка наличия карты, стартовой позиции и чекпоинтов перед отправкой
- Автоматическая загрузка решения и запуск воспроизведения
- Отображение статистики решения (шаги, чекпоинты, время)
- Обработка ошибок сервера
styles.css
- Добавлены стили для
.solver-status- отображение статуса решения
Как использовать
-
Запустите микросервис:
./run-webservice.sh -
Откройте визуализатор:
./open-player.sh # или откройте racing-tools/player.html в браузере -
Загрузите карту:
- Нажмите "📂 Загрузить карту"
- Выберите JSON файл с картой
- Карта должна содержать старт (тип 5) и чекпоинты (тип 4)
-
Найдите решение:
- Нажмите "🧠 Найти решение"
- Дождитесь ответа от сервера
- Решение автоматически загрузится и начнет воспроизводиться
Статус решения
После нажатия кнопки отображается:
Успех ✅
✅ Решение найдено!
📊 Шагов: 15
🎯 Чекпоинтов: 3
⚡ Макс. скорость: 6
⏱️ Время: 0.52s
Ошибка ❌
- "Решение не найдено" - нет решения в рамках maxIterations
- "Сервер недоступен" - микросервис не запущен
- Другие ошибки с описанием
Преимущества
✅ Быстрое тестирование - не нужно вручную создавать решения
✅ Автоматическая визуализация - решение сразу воспроизводится
✅ Статистика - видно качество и производительность решения
✅ Обработка ошибок - понятные сообщения об ошибках
Workflow
Загрузить карту → Найти решение → Автоматическое воспроизведение
↓ ↓ ↓
player.html API call to Визуализация траектории
localhost:5000/solve
Требования
- Микросервис должен быть запущен на
http://localhost:5000 - Карта должна содержать:
- Стартовую позицию (тип 5)
- Минимум 1 чекпоинт (тип 4)
Примеры карт для тестирования
# Простая карта
maps/simple-test.json
# Средняя карта
maps/racing-map-15x15.json
# Сложная карта
maps/racing-map-42x42.json
API endpoint
POST http://localhost:5000/solve
Content-Type: application/json
{
"map": [[0,0,4], [5,0,0], [0,0,0]],
"maxIterations": 5000000
}
Совместимость
✅ Работает со всеми существующими картами
✅ Не ломает загрузку решений из файлов
✅ Совместимо с редактором карт