документация к кнопке + .vscode для .net
This commit is contained in:
26
.vscode/launch.json
vendored
Normal file
26
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
// Use IntelliSense to find out which attributes exist for C# debugging
|
||||||
|
// Use hover for the description of the existing attributes
|
||||||
|
// For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md
|
||||||
|
"name": ".NET Core Launch (console)",
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "build",
|
||||||
|
// If you have changed target frameworks, make sure to update the program path.
|
||||||
|
"program": "${workspaceFolder}/bin/Debug/net8.0/racing-webservice.dll",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceFolder}",
|
||||||
|
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
|
||||||
|
"console": "internalConsole",
|
||||||
|
"stopAtEntry": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": ".NET Core Attach",
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "attach"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
41
.vscode/tasks.json
vendored
Normal file
41
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "build",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"build",
|
||||||
|
"${workspaceFolder}/racing-webservice.csproj",
|
||||||
|
"/property:GenerateFullPaths=true",
|
||||||
|
"/consoleloggerparameters:NoSummary;ForceNoAlign"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "publish",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"publish",
|
||||||
|
"${workspaceFolder}/racing-webservice.csproj",
|
||||||
|
"/property:GenerateFullPaths=true",
|
||||||
|
"/consoleloggerparameters:NoSummary;ForceNoAlign"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "watch",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"watch",
|
||||||
|
"run",
|
||||||
|
"--project",
|
||||||
|
"${workspaceFolder}/racing-webservice.csproj"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
119
racing-tools/SOLVER-INTEGRATION.md
Normal file
119
racing-tools/SOLVER-INTEGRATION.md
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
# Интеграция 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
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Совместимость
|
||||||
|
|
||||||
|
✅ Работает со всеми существующими картами
|
||||||
|
✅ Не ломает загрузку решений из файлов
|
||||||
|
✅ Совместимо с редактором карт
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user