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

4.2 KiB
Raw Permalink Blame History

Интеграция A* Solver в Визуализатор

Что добавлено

В визуализатор решений (player.html) добавлена кнопка "🧠 Найти решение", которая автоматически решает загруженную карту через микросервис A*.

Изменения в файлах

player.html

  • Добавлена кнопка "🧠 Найти решение" между "Загрузить карту" и "Загрузить решение"
  • Добавлен div для отображения статуса решения

player.js

  • Добавлена функция solveMap() - вызывает API http://localhost:5000/solve
  • Проверка наличия карты, стартовой позиции и чекпоинтов перед отправкой
  • Автоматическая загрузка решения и запуск воспроизведения
  • Отображение статистики решения (шаги, чекпоинты, время)
  • Обработка ошибок сервера

styles.css

  • Добавлены стили для .solver-status - отображение статуса решения

Как использовать

  1. Запустите микросервис:

    ./run-webservice.sh
    
  2. Откройте визуализатор:

    ./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)

Примеры карт для тестирования

# Простая карта
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
}

Совместимость

Работает со всеми существующими картами
Не ломает загрузку решений из файлов
Совместимо с редактором карт