229 lines
9.5 KiB
Markdown
229 lines
9.5 KiB
Markdown
# 🗺️ Карта racing-map-50x50-100cp.json
|
||
|
||
**Сгенерированная интересная карта для Paper Racing**
|
||
|
||
## 📊 Параметры карты
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| Размер | 50×50 (2500 клеток) |
|
||
| Чекпоинты | 100 шт. |
|
||
| Дорога | 1900 клеток (76%) |
|
||
| Препятствия | 249 клеток (9%) |
|
||
| Снег | 174 клетки (6%) |
|
||
| Лёд | 77 клеток (3%) |
|
||
|
||
## 🎯 Особенности карты
|
||
|
||
### Зоны сложности
|
||
|
||
1. **Верхняя часть (Y: 35-48)** - Снежная зона
|
||
- Большая концентрация снега
|
||
- Требует точного маневрирования (ускорение ±1)
|
||
- Содержит ~40% чекпоинтов
|
||
- Препятствия для проезда
|
||
|
||
2. **Средняя часть (Y: 20-35)** - Ледяная зона
|
||
- Участки со льдом (инерция)
|
||
- Требует планирования траектории
|
||
- Смешанные типы поверхностей
|
||
- Содержит ~40% чекпоинтов
|
||
|
||
3. **Нижняя часть (Y: 1-20)** - Свободная зона
|
||
- В основном обычная дорога
|
||
- Меньше препятствий
|
||
- Островки препятствий
|
||
- Содержит ~20% чекпоинтов
|
||
|
||
### Дизайн трассы
|
||
|
||
```
|
||
Схематичное представление:
|
||
|
||
┌─────────────────────────────────────┐
|
||
│ ГРАНИЦА (препятствия) │
|
||
├─────────────────────────────────────┤
|
||
│ СНЕЖНАЯ ЗОНА ~~~~~~~~~ │
|
||
│ • Волнистая траектория │
|
||
│ • Чекпоинты 1-40 │
|
||
│ • Острова препятствий │
|
||
├─────────────────────────────────────┤
|
||
│ ЛЕДЯНАЯ ЗОНА ========= │
|
||
│ • Инерционные участки │
|
||
│ • Чекпоинты 41-80 │
|
||
│ • Смешанный ландшафт │
|
||
├─────────────────────────────────────┤
|
||
│ СВОБОДНАЯ ЗОНА │
|
||
│ • Открытое пространство │
|
||
│ • Чекпоинты 81-100 │
|
||
│ • Редкие препятствия │
|
||
├─────────────────────────────────────┤
|
||
│ ГРАНИЦА (препятствия) │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
## 🏁 Результаты тестирования
|
||
|
||
### Алгоритм A* решение
|
||
|
||
```
|
||
✅ Решение найдено!
|
||
|
||
Статистика:
|
||
- Ходов: 144
|
||
- Итераций: 456
|
||
- Время: 0.99 секунды
|
||
- Максимальная скорость: 9
|
||
- Размер открытого множества: 6733
|
||
|
||
Эффективность:
|
||
- Ходов на чекпоинт: 1.44
|
||
- Итераций на ход: 3.17
|
||
- Скорость поиска: ~461 итераций/сек
|
||
```
|
||
|
||
### Сложность карты
|
||
|
||
- **Размер пространства состояний**: Очень большой (50×50 × скорости × 2^100 чекпоинтов)
|
||
- **Оценка сложности**: ⭐⭐⭐⭐⭐ (5/5 - Очень сложная)
|
||
- **Время решения**: ~1 секунда (отлично!)
|
||
- **Качество эвристики**: Начальная оценка 205.23 → финальная 144.00 (переоценка ~42%)
|
||
|
||
## 🎮 Интересные моменты
|
||
|
||
### Стратегические зоны
|
||
|
||
1. **Снежная траверса** (шаги ~1-50)
|
||
- Прохождение через снежную зону
|
||
- Ограниченное маневрирование
|
||
- Сбор первых 40 чекпоинтов
|
||
|
||
2. **Ледяной дрифт** (шаги ~51-100)
|
||
- Использование инерции на льду
|
||
- Точное планирование скорости
|
||
- Сбор средних 40 чекпоинтов
|
||
|
||
3. **Финальный рывок** (шаги ~101-144)
|
||
- Быстрое движение по обычной дороге
|
||
- Сбор последних 20 чекпоинтов
|
||
- Максимальная скорость 9
|
||
|
||
### Трудные участки
|
||
|
||
- **Чекпоинты 10-15**: В центре снежной зоны, требуют точности
|
||
- **Чекпоинты 50-60**: На границе снега и льда, смена стратегии
|
||
- **Чекпоинты 80-90**: Распределены по всей нижней зоне
|
||
|
||
## 🚀 Использование
|
||
|
||
### Запуск с этой картой
|
||
|
||
```bash
|
||
# Компиляция (если нужно)
|
||
dotnet build racing-astar.csproj
|
||
|
||
# Запуск
|
||
./bin/Debug/net8.0/racing-astar maps/racing-map-50x50-100cp.json
|
||
```
|
||
|
||
### Визуализация
|
||
|
||
```
|
||
S - старт (1, 48)
|
||
1-9 - чекпоинты с номерами 1-9
|
||
● - чекпоинты с номерами ≥10
|
||
# - препятствия (можно проезжать)
|
||
~ - снег (ускорение ±1)
|
||
= - лёд (инерция)
|
||
. - путь решения
|
||
- обычная дорога
|
||
```
|
||
|
||
## 📈 Рекомендации для игроков
|
||
|
||
### Стратегии прохождения
|
||
|
||
1. **Снежная зона**
|
||
- Используйте малые ускорения
|
||
- Планируйте на 2-3 хода вперед
|
||
- Не торопитесь - точность важнее скорости
|
||
|
||
2. **Ледяная зона**
|
||
- Набирайте скорость до входа в зону
|
||
- Используйте инерцию для длинных перемещений
|
||
- Рассчитывайте траекторию заранее
|
||
|
||
3. **Свободная зона**
|
||
- Максимальное ускорение
|
||
- Быстрый сбор оставшихся чекпоинтов
|
||
- Можно рисковать
|
||
|
||
### Продвинутые техники
|
||
|
||
- **Проезд через препятствия**: Используйте высокую скорость для "прыжков" через зоны препятствий
|
||
- **Ледяной дрифт**: На льду набирайте скорость и скользите к нескольким чекпоинтам
|
||
- **Снежное торможение**: Используйте снег для точной остановки у чекпоинтов
|
||
|
||
## 🔧 Генерация карты
|
||
|
||
Карта была сгенерирована с использованием Python скрипта со следующими параметрами:
|
||
|
||
```python
|
||
width, height = 50, 50
|
||
checkpoints = 100
|
||
snow_density = 0.6 (в верхней зоне)
|
||
ice_density = 0.4 (в средней зоне)
|
||
obstacle_zones = 5 (случайные острова)
|
||
border = камни (все края)
|
||
```
|
||
|
||
### Алгоритм размещения чекпоинтов
|
||
|
||
- Волнистая траектория по синусоиде
|
||
- Равномерное распределение по карте
|
||
- Избегание границ (отступ 2-3 клетки)
|
||
- Случайная вариация для интереса
|
||
|
||
## 📊 Сравнение с другими картами
|
||
|
||
| Карта | Размер | ЧП | Ходов | Итераций | Время |
|
||
|-------|--------|-----|-------|----------|-------|
|
||
| simple-test | 10×10 | 2 | 5 | 23 | 0.04с |
|
||
| easy-test | 15×11 | 2 | 3 | 4 | 0.04с |
|
||
| test-combined | 20×15 | 4 | 9 | 21 | 0.04с |
|
||
| **racing-map-50x50-100cp** | **50×50** | **100** | **144** | **456** | **0.99с** |
|
||
|
||
**Эта карта в ~25 раз сложнее комбинированного теста!**
|
||
|
||
## 🎖️ Достижения
|
||
|
||
Если вы решите эту карту вручную:
|
||
|
||
- 🥉 **Новичок**: Решено за <300 ходов
|
||
- 🥈 **Опытный**: Решено за <200 ходов
|
||
- 🥇 **Эксперт**: Решено за <160 ходов
|
||
- 💎 **Мастер**: Решено за <150 ходов
|
||
- 🏆 **Легенда**: Решено за ≤144 хода (как A*)
|
||
|
||
## 💡 Идеи для модификации
|
||
|
||
1. **Усложнить**: Добавить больше льда и препятствий
|
||
2. **Облегчить**: Убрать снег, оставить только лёд
|
||
3. **Изменить**: Переставить чекпоинты в обратном порядке
|
||
4. **Экстрим**: 150 чекпоинтов на 60×60
|
||
|
||
## 📝 Заметки
|
||
|
||
- Карта спроектирована для демонстрации всех типов поверхностей
|
||
- Оптимизирована для A* алгоритма с эвристикой
|
||
- Баланс между сложностью и решаемостью
|
||
- Интересна как для алгоритмов, так и для ручной игры
|
||
|
||
---
|
||
|
||
**Создана**: 19 октября 2025
|
||
**Автор**: AI Generated
|
||
**Версия**: 1.0
|
||
**Статус**: ✅ Протестировано и работает
|
||
|