167 lines
4.1 KiB
Markdown
167 lines
4.1 KiB
Markdown
# 🌐 Веб-инструменты для "Гонки на бумаге"
|
||
|
||
В проекте доступны два независимых веб-приложения:
|
||
|
||
## 🗺️ Редактор карт
|
||
|
||
**Назначение:** Создание и редактирование карт для игры
|
||
|
||
**Расположение:** `map-editor/`
|
||
|
||
**Функции:**
|
||
- Рисование карт мышью
|
||
- 6 типов ячеек (дорога, камень, снег, лёд, чекпоинт, старт)
|
||
- Экспорт/импорт JSON
|
||
- Изменение размеров карты
|
||
- Валидация данных
|
||
|
||
**Запуск:**
|
||
```bash
|
||
cd map-editor
|
||
./open-editor.sh
|
||
# или просто откройте index.html в браузере
|
||
```
|
||
|
||
**Документация:** [map-editor/README.md](map-editor/README.md)
|
||
|
||
---
|
||
|
||
## 🎬 Визуализатор решений
|
||
|
||
**Назначение:** Анимация и визуализация решений
|
||
|
||
**Расположение:** `solution-player/`
|
||
|
||
**Функции:**
|
||
- Загрузка карт и решений
|
||
- Пошаговое воспроизведение
|
||
- Регулировка скорости (1x-10x)
|
||
- Навигация вперед/назад
|
||
- Отображение векторов скорости
|
||
- Детальная информация о каждом шаге
|
||
|
||
**Запуск:**
|
||
```bash
|
||
cd solution-player
|
||
./open-player.sh
|
||
# или просто откройте index.html в браузере
|
||
```
|
||
|
||
**Документация:** [solution-player/README.md](solution-player/README.md)
|
||
|
||
---
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
### Создание и тестирование карты
|
||
|
||
1. **Создайте карту:**
|
||
```bash
|
||
cd map-editor
|
||
./open-editor.sh
|
||
```
|
||
- Нарисуйте карту
|
||
- Обязательно добавьте точку старта (тип 5)
|
||
- Экспортируйте в JSON
|
||
|
||
2. **Решите карту:**
|
||
```bash
|
||
cd ..
|
||
dotnet run --project racing-astar.csproj maps/your-map.json
|
||
```
|
||
|
||
3. **Визуализируйте решение:**
|
||
```bash
|
||
cd solution-player
|
||
./open-player.sh
|
||
```
|
||
- Загрузите карту
|
||
- Загрузите решение
|
||
- Нажмите Play
|
||
|
||
---
|
||
|
||
## 📋 Форматы файлов
|
||
|
||
### Карта (map)
|
||
|
||
```json
|
||
{
|
||
"map": [
|
||
[0, 0, 5],
|
||
[0, 1, 0],
|
||
[4, 0, 0]
|
||
]
|
||
}
|
||
```
|
||
|
||
**Типы ячеек:**
|
||
- `0` - Дорога
|
||
- `1` - Камень (препятствие)
|
||
- `2` - Снег (замедление)
|
||
- `3` - Лёд (скольжение)
|
||
- `4` - Чекпоинт
|
||
- `5` - Старт
|
||
|
||
### Решение (solution)
|
||
|
||
```json
|
||
{
|
||
"solution": [
|
||
[1, 0],
|
||
[0, 1],
|
||
[-1, 0]
|
||
]
|
||
}
|
||
```
|
||
|
||
**Формат:** массив векторов ускорения `[[ax, ay], ...]`
|
||
|
||
---
|
||
|
||
## 🛠️ Технологии
|
||
|
||
Оба приложения:
|
||
- ✅ Работают без сервера
|
||
- ✅ Pure HTML/CSS/JavaScript
|
||
- ✅ HTML5 Canvas
|
||
- ✅ Современный UI/UX
|
||
- ✅ Не требуют установки
|
||
|
||
---
|
||
|
||
## 📁 Структура проекта
|
||
|
||
```
|
||
racing/
|
||
├── map-editor/ # Редактор карт
|
||
│ ├── index.html
|
||
│ ├── editor.js
|
||
│ ├── README.md
|
||
│ └── *.json # Примеры карт
|
||
│
|
||
├── solution-player/ # Визуализатор решений
|
||
│ ├── index.html
|
||
│ ├── player.js
|
||
│ ├── README.md
|
||
│ └── *.json # Примеры карт и решений
|
||
│
|
||
└── maps/ # Основная коллекция карт
|
||
└── *.json
|
||
```
|
||
|
||
---
|
||
|
||
## 🔗 Связь между приложениями
|
||
|
||
1. **Редактор карт** → создает JSON файлы карт
|
||
2. **C# Solver** → принимает карты, генерирует решения
|
||
3. **Визуализатор** → отображает карты и решения
|
||
|
||
Приложения полностью независимы и могут использоваться отдельно.
|
||
|
||
---
|
||
|
||
Создано для проекта [Racing](README.md)
|
||
|