Files
paper-racing-gpi/racing-tools/SOLVER-INTEGRATION.md

120 lines
4.2 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* 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
}
```
## Совместимость
✅ Работает со всеми существующими картами
Не ломает загрузку решений из файлов
✅ Совместимо с редактором карт