# Интеграция A* Solver в Визуализатор ## Что добавлено В визуализатор решений (player.html) добавлена кнопка **"🧠 Найти решение"**, которая автоматически решает загруженную карту через микросервис A*. ## Изменения в файлах ### player.html - Добавлена кнопка "🧠 Найти решение" между "Загрузить карту" и "Загрузить решение" - Добавлен div для отображения статуса решения ### player.js - Добавлена функция `solveMap()` - вызывает API `http://localhost:5000/solve` - Проверка наличия карты, стартовой позиции и чекпоинтов перед отправкой - Автоматическая загрузка решения и запуск воспроизведения - Отображение статистики решения (шаги, чекпоинты, время) - Обработка ошибок сервера ### styles.css - Добавлены стили для `.solver-status` - отображение статуса решения ## Как использовать 1. **Запустите микросервис:** ```bash ./run-webservice.sh ``` 2. **Откройте визуализатор:** ```bash ./open-player.sh # или откройте racing-tools/player.html в браузере ``` 3. **Загрузите карту:** - Нажмите "📂 Загрузить карту" - Выберите JSON файл с картой - Карта должна содержать старт (тип 5) и чекпоинты (тип 4) 4. **Найдите решение:** - Нажмите "🧠 Найти решение" - Дождитесь ответа от сервера - Решение автоматически загрузится и начнет воспроизводиться ## Статус решения После нажатия кнопки отображается: ### Успех ✅ ``` ✅ Решение найдено! 📊 Шагов: 15 🎯 Чекпоинтов: 3 ⚡ Макс. скорость: 6 ⏱️ Время: 0.52s ``` ### Ошибка ❌ - "Решение не найдено" - нет решения в рамках maxIterations - "Сервер недоступен" - микросервис не запущен - Другие ошибки с описанием ## Преимущества ✅ **Быстрое тестирование** - не нужно вручную создавать решения ✅ **Автоматическая визуализация** - решение сразу воспроизводится ✅ **Статистика** - видно качество и производительность решения ✅ **Обработка ошибок** - понятные сообщения об ошибках ## Workflow ``` Загрузить карту → Найти решение → Автоматическое воспроизведение ↓ ↓ ↓ player.html API call to Визуализация траектории localhost:5000/solve ``` ## Требования - Микросервис должен быть запущен на `http://localhost:5000` - Карта должна содержать: - Стартовую позицию (тип 5) - Минимум 1 чекпоинт (тип 4) ## Примеры карт для тестирования ```bash # Простая карта 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 } ``` ## Совместимость ✅ Работает со всеми существующими картами ✅ Не ломает загрузку решений из файлов ✅ Совместимо с редактором карт