298 lines
9.9 KiB
Markdown
298 lines
9.9 KiB
Markdown
# 🗺️ Индекс всех карт Paper Racing
|
||
|
||
**Последнее обновление**: 19 октября 2025
|
||
|
||
---
|
||
|
||
## 📚 Доступные карты
|
||
|
||
### 🎓 Обучающие карты
|
||
|
||
#### 1. simple-test.json
|
||
- **Размер**: 10×10
|
||
- **Чекпоинты**: 2
|
||
- **Сложность**: ⭐ (1/5) - Очень легкая
|
||
- **Особенности**:
|
||
- Небольшой лабиринт
|
||
- 33 препятствия
|
||
- 3 клетки снега
|
||
- **Решение A***: 5 ходов, 23 итерации, 0.04с
|
||
- **Назначение**: Первое знакомство с игрой
|
||
|
||
#### 2. easy-test.json
|
||
- **Размер**: 15×11
|
||
- **Чекпоинты**: 2
|
||
- **Сложность**: ⭐ (1/5) - Очень легкая
|
||
- **Особенности**:
|
||
- Прямоугольная арена
|
||
- 40 препятствий по периметру
|
||
- Открытое пространство внутри
|
||
- **Решение A***: 3 хода, 4 итерации, 0.04с
|
||
- **Назначение**: Освоение базовых механик
|
||
|
||
#### 3. open-field.json
|
||
- **Размер**: 20×10
|
||
- **Чекпоинты**: 3
|
||
- **Сложность**: ⭐⭐ (2/5) - Легкая
|
||
- **Особенности**:
|
||
- Открытое поле
|
||
- Без препятствий
|
||
- Фокус на оптимизацию траектории
|
||
- **Решение A***: 6 ходов, 15 итераций, 0.05с
|
||
- **Назначение**: Тренировка оптимального маршрута
|
||
|
||
---
|
||
|
||
### 🧪 Тестовые карты (проверка механик)
|
||
|
||
#### 4. test-obstacles.json
|
||
- **Размер**: 15×11
|
||
- **Чекпоинты**: 1
|
||
- **Сложность**: ⭐⭐ (2/5) - Легкая
|
||
- **Особенности**:
|
||
- 56 препятствий в центре
|
||
- Проверка проезда через препятствия
|
||
- Нельзя останавливаться на препятствиях
|
||
- **Решение A***: 4 хода, 24 итерации, 0.04с
|
||
- **Назначение**: Тест механики препятствий
|
||
|
||
#### 5. test-snow.json
|
||
- **Размер**: 15×9
|
||
- **Чекпоинты**: 1
|
||
- **Сложность**: ⭐⭐ (2/5) - Легкая
|
||
- **Особенности**:
|
||
- 49 клеток снега
|
||
- Ограниченное ускорение (±1)
|
||
- Требует точного маневрирования
|
||
- **Решение A***: 3 хода, 42 итерации, 0.04с
|
||
- **Назначение**: Тест механики снега
|
||
|
||
#### 6. test-ice.json
|
||
- **Размер**: 18×9
|
||
- **Чекпоинты**: 1
|
||
- **Сложность**: ⭐⭐ (2/5) - Легкая
|
||
- **Особенности**:
|
||
- 54 клетки льда
|
||
- Инерция (ускорение нельзя менять)
|
||
- Требует планирования
|
||
- **Решение A***: 3 хода, 34 итерации, 0.04с
|
||
- **Назначение**: Тест механики льда
|
||
|
||
#### 7. test-combined.json
|
||
- **Размер**: 20×15
|
||
- **Чекпоинты**: 4
|
||
- **Сложность**: ⭐⭐⭐ (3/5) - Средняя
|
||
- **Особенности**:
|
||
- 16 препятствий
|
||
- 24 клетки снега
|
||
- 15 клеток льда
|
||
- Все механики вместе
|
||
- **Решение A***: 9 ходов, 21 итерация, 0.04с
|
||
- **Назначение**: Комплексная проверка всех механик
|
||
|
||
---
|
||
|
||
### 🏆 Сложные карты
|
||
|
||
#### 8. racing-map-42x42.json
|
||
- **Размер**: 42×42
|
||
- **Чекпоинты**: 40
|
||
- **Сложность**: ⭐⭐⭐⭐ (4/5) - Сложная
|
||
- **Особенности**:
|
||
- Большая карта
|
||
- Множество чекпоинтов
|
||
- Сложная топология
|
||
- **Решение A***: Требует оптимизации
|
||
- **Назначение**: Испытание алгоритма
|
||
|
||
#### 9. racing-map-50x50-100cp.json ⭐ НОВАЯ
|
||
- **Размер**: 50×50 (2500 клеток)
|
||
- **Чекпоинты**: 100
|
||
- **Сложность**: ⭐⭐⭐⭐⭐ (5/5) - Очень сложная
|
||
- **Особенности**:
|
||
- 1900 клеток дороги (76%)
|
||
- 249 препятствий (9%)
|
||
- 174 клетки снега (6%)
|
||
- 77 клеток льда (3%)
|
||
- Три зоны: снежная, ледяная, свободная
|
||
- **Решение A***: 144 хода, 456 итераций, 0.99с
|
||
- **Назначение**: Максимальный вызов
|
||
- **Документация**: `MAP-50x50-100cp-INFO.md`
|
||
|
||
---
|
||
|
||
## 📊 Сравнительная таблица
|
||
|
||
| Карта | Размер | ЧП | Ходов | Итераций | Время | Сложность |
|
||
|-------|--------|-----|-------|----------|-------|-----------|
|
||
| simple-test | 10×10 | 2 | 5 | 23 | 0.04с | ⭐ |
|
||
| easy-test | 15×11 | 2 | 3 | 4 | 0.04с | ⭐ |
|
||
| open-field | 20×10 | 3 | 6 | 15 | 0.05с | ⭐⭐ |
|
||
| test-obstacles | 15×11 | 1 | 4 | 24 | 0.04с | ⭐⭐ |
|
||
| test-snow | 15×9 | 1 | 3 | 42 | 0.04с | ⭐⭐ |
|
||
| test-ice | 18×9 | 1 | 3 | 34 | 0.04с | ⭐⭐ |
|
||
| test-combined | 20×15 | 4 | 9 | 21 | 0.04с | ⭐⭐⭐ |
|
||
| racing-map-42x42 | 42×42 | 40 | ? | ? | ? | ⭐⭐⭐⭐ |
|
||
| **racing-map-50x50-100cp** | **50×50** | **100** | **144** | **456** | **0.99с** | **⭐⭐⭐⭐⭐** |
|
||
|
||
---
|
||
|
||
## 🎯 Рекомендуемый порядок прохождения
|
||
|
||
### Новичкам
|
||
1. `simple-test.json` - Основы
|
||
2. `easy-test.json` - Простая тактика
|
||
3. `open-field.json` - Оптимизация
|
||
|
||
### Изучение механик
|
||
4. `test-obstacles.json` - Препятствия
|
||
5. `test-snow.json` - Снег
|
||
6. `test-ice.json` - Лёд
|
||
7. `test-combined.json` - Все вместе
|
||
|
||
### Профи
|
||
8. `racing-map-42x42.json` - Большая карта
|
||
9. `racing-map-50x50-100cp.json` - Финальный босс
|
||
|
||
---
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
### Запуск конкретной карты
|
||
```bash
|
||
./bin/Debug/net8.0/racing-astar maps/[название-карты].json
|
||
```
|
||
|
||
### Запуск всех тестов
|
||
```bash
|
||
./run-all-tests.sh
|
||
```
|
||
|
||
### Примеры
|
||
```bash
|
||
# Легкая карта для начала
|
||
./bin/Debug/net8.0/racing-astar maps/simple-test.json
|
||
|
||
# Средней сложности
|
||
./bin/Debug/net8.0/racing-astar maps/test-combined.json
|
||
|
||
# Максимальный челлендж
|
||
./bin/Debug/net8.0/racing-astar maps/racing-map-50x50-100cp.json
|
||
```
|
||
|
||
---
|
||
|
||
## 🎨 Легенда символов
|
||
|
||
| Символ | Тип | Код | Правило |
|
||
|--------|-----|-----|---------|
|
||
| `S` | Старт | - | Начальная позиция |
|
||
| `1-9` | Чекпоинты | 4 | Номера 1-9 |
|
||
| `●` | Чекпоинты | 4 | Номера ≥10 |
|
||
| `#` | Препятствия | 1 | Можно проезжать, нельзя останавливаться |
|
||
| `~` | Снег | 2 | Ускорение ±1 |
|
||
| `=` | Лёд | 3 | Инерция (ускорение 0) |
|
||
| `.` | Путь | - | Траектория решения |
|
||
| ` ` | Дорога | 0 | Ускорение ±2 |
|
||
|
||
---
|
||
|
||
## 📖 Документация карт
|
||
|
||
- **Общая**: `MAP-FORMAT.md` - Формат карт
|
||
- **Тестовые**: `TEST-MAPS-README.md` - Руководство по тестовым картам
|
||
- **50×50**: `MAP-50x50-100cp-INFO.md` - Подробности о большой карте
|
||
|
||
---
|
||
|
||
## 🔧 Создание собственных карт
|
||
|
||
### Минимальный пример
|
||
```json
|
||
{
|
||
"map": [
|
||
[0, 0, 0, 0, 0],
|
||
[0, 1, 1, 1, 0],
|
||
[0, 0, 4, 0, 0],
|
||
[0, 2, 2, 2, 0],
|
||
[0, 0, 0, 0, 0]
|
||
]
|
||
}
|
||
```
|
||
|
||
### Типы клеток
|
||
- `0` - Дорога (первая клетка = старт)
|
||
- `1` - Препятствие
|
||
- `2` - Снег
|
||
- `3` - Лёд
|
||
- `4` - Чекпоинт
|
||
|
||
### Генератор
|
||
Используйте Python скрипт для генерации больших карт:
|
||
```python
|
||
# Пример в IMPLEMENTATION-SUMMARY.md
|
||
```
|
||
|
||
---
|
||
|
||
## 📈 Статистика коллекции
|
||
|
||
- **Всего карт**: 9
|
||
- **Размеры**: от 10×10 до 50×50
|
||
- **Чекпоинты**: от 1 до 100
|
||
- **Общее кол-во клеток**: ~5500
|
||
- **Стилей**: Лабиринты, арены, открытые поля, комплексные
|
||
|
||
---
|
||
|
||
## 🏅 Достижения
|
||
|
||
### Коллекционер карт
|
||
- ✅ Пройти все обучающие карты
|
||
- ✅ Пройти все тестовые карты
|
||
- ✅ Пройти сложные карты
|
||
|
||
### Мастер скорости
|
||
- 🥇 Решить карту быстрее A*
|
||
- 🥈 Решить за ходов как A*
|
||
- 🥉 Решить за на 10% больше ходов чем A*
|
||
|
||
### Исследователь
|
||
- 🗺️ Создать собственную карту
|
||
- 🎨 Создать карту со всеми типами поверхностей
|
||
- 🏆 Создать нерешаемую карту
|
||
|
||
---
|
||
|
||
## 📝 История версий
|
||
|
||
### v1.2 (19.10.2025)
|
||
- ✅ Добавлена `racing-map-50x50-100cp.json`
|
||
- ✅ 100 чекпоинтов
|
||
- ✅ Все типы поверхностей
|
||
- ✅ Три зоны сложности
|
||
|
||
### v1.1 (19.10.2025)
|
||
- ✅ Добавлены тестовые карты
|
||
- ✅ Поддержка снега и льда
|
||
- ✅ Новые правила для препятствий
|
||
|
||
### v1.0 (начало)
|
||
- Базовые карты: simple-test, easy-test, open-field
|
||
- Карта 42×42 с 40 чекпоинтами
|
||
|
||
---
|
||
|
||
## 💡 Советы
|
||
|
||
1. **Начните с малого**: Сначала пройдите simple-test
|
||
2. **Изучайте механики**: Каждая тестовая карта учит чему-то новому
|
||
3. **Экспериментируйте**: Пробуйте разные стратегии
|
||
4. **Анализируйте A***: Смотрите как алгоритм решает карты
|
||
5. **Создавайте свои**: Самые интересные карты - ваши собственные
|
||
|
||
---
|
||
|
||
**Удачи в гонках!** 🏁
|
||
|