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