This commit is contained in:
2025-10-20 22:27:15 +05:00
parent 88643415aa
commit a9af432e27
22 changed files with 378 additions and 3122 deletions

View File

@@ -8,75 +8,80 @@
</head>
<body>
<div class="container">
<h1>🏁 Редактор карт</h1>
<p class="subtitle">Гонки на бумаге / Paper Racing</p>
<div class="nav-links">
<a href="editor.html">🏁 Редактор карт</a>
<a href="player.html">🎬 Визуализатор решений</a>
</div>
<div class="controls">
<div class="control-group">
<h3>📐 Размеры карты</h3>
<div class="size-inputs">
<div class="input-wrapper">
<label for="width">Ширина:</label>
<input type="number" id="width" min="5" max="100" value="15">
</div>
<div class="input-wrapper">
<label for="height">Высота:</label>
<input type="number" id="height" min="5" max="100" value="15">
</div>
</div>
<div class="buttons">
<button class="btn-primary" onclick="resizeMap()">Применить</button>
<button class="btn-danger" onclick="clearMap()">Очистить</button>
</div>
<div class="header">
<div class="header-title">
<h1>🏁 Гонки на бумаге</h1>
<p class="subtitle">Редактор карт</p>
</div>
<div class="control-group">
<h3>🎨 Тип ячейки</h3>
<div class="palette">
<div class="cell-type road active" data-type="0" onclick="selectCellType(0)">
<span>Дорога</span>
<span class="code">(0)</span>
</div>
<div class="cell-type stone" data-type="1" onclick="selectCellType(1)">
<span>Камень</span>
<span class="code">(1)</span>
</div>
<div class="cell-type snow" data-type="2" onclick="selectCellType(2)">
<span>Снег</span>
<span class="code">(2)</span>
</div>
<div class="cell-type ice" data-type="3" onclick="selectCellType(3)">
<span>Лёд</span>
<span class="code">(3)</span>
</div>
<div class="cell-type checkpoint" data-type="4" onclick="selectCellType(4)">
<span>Чекпоинт</span>
<span class="code">(4)</span>
</div>
<div class="cell-type start" data-type="5" onclick="selectCellType(5)">
<span>Старт</span>
<span class="code">(5)</span>
</div>
</div>
</div>
<div class="control-group">
<h3>💾 Импорт / Экспорт</h3>
<div class="buttons">
<button class="btn-success" onclick="exportMap()">📥 Экспорт JSON</button>
<button class="btn-warning" onclick="document.getElementById('fileInput').click()">📤 Импорт JSON</button>
</div>
<input type="file" id="fileInput" accept=".json" onchange="importMap(event)">
<div class="nav-links">
<a href="editor.html" class="active">🏁 Редактор карт</a>
<a href="player.html">🎬 Визуализатор решений</a>
</div>
</div>
<div class="canvas-wrapper">
<canvas id="mapCanvas"></canvas>
<div class="main-content">
<div class="sidebar">
<div class="control-group">
<h3>📐 Размеры карты</h3>
<div class="size-inputs">
<div class="input-wrapper">
<label for="width">Ширина:</label>
<input type="number" id="width" min="5" max="1000" value="15">
</div>
<div class="input-wrapper">
<label for="height">Высота:</label>
<input type="number" id="height" min="5" max="1000" value="15">
</div>
</div>
<div class="buttons">
<button class="btn-primary" onclick="resizeMap()">Применить</button>
</div>
</div>
<div class="control-group">
<h3>💾 Импорт / Экспорт</h3>
<div class="buttons">
<button class="btn-success" onclick="exportMap()">📥 Экспорт JSON</button>
<button class="btn-success" onclick="document.getElementById('fileInput').click()">📤 Импорт JSON</button>
<button class="btn-danger" onclick="clearMap()">Очистить</button>
</div>
<input type="file" id="fileInput" accept=".json" onchange="importMap(event)">
</div>
<div class="control-group">
<h3>🎨 Тип ячейки</h3>
<div class="palette">
<div class="cell-type road active" data-type="0" onclick="selectCellType(0)">
<span>Дорога</span>
<span class="code">(0)</span>
</div>
<div class="cell-type stone" data-type="1" onclick="selectCellType(1)">
<span>Камень</span>
<span class="code">(1)</span>
</div>
<div class="cell-type snow" data-type="2" onclick="selectCellType(2)">
<span>Снег</span>
<span class="code">(2)</span>
</div>
<div class="cell-type ice" data-type="3" onclick="selectCellType(3)">
<span>Лёд</span>
<span class="code">(3)</span>
</div>
<div class="cell-type checkpoint" data-type="4" onclick="selectCellType(4)">
<span>Чекпоинт</span>
<span class="code">(4)</span>
</div>
<div class="cell-type start" data-type="5" onclick="selectCellType(5)">
<span>Старт</span>
<span class="code">(5)</span>
</div>
</div>
</div>
</div>
<div class="canvas-wrapper">
<canvas id="mapCanvas"></canvas>
</div>
</div>
<div class="info">
@@ -86,36 +91,6 @@
• Экспортируйте карту в JSON для использования в игре<br>
• Для визуализации решений используйте <a href="player.html" style="color: #0d47a1; font-weight: bold;">Визуализатор решений</a>
</div>
<div class="control-group">
<h3>📖 Легенда цветов</h3>
<div class="legend">
<div class="legend-item">
<div class="legend-color road"></div>
<span>Дорога (0)</span>
</div>
<div class="legend-item">
<div class="legend-color stone"></div>
<span>Камень (1)</span>
</div>
<div class="legend-item">
<div class="legend-color snow"></div>
<span>Снег (2)</span>
</div>
<div class="legend-item">
<div class="legend-color ice"></div>
<span>Лёд (3)</span>
</div>
<div class="legend-item">
<div class="legend-color checkpoint"></div>
<span>Чекпоинт (4)</span>
</div>
<div class="legend-item">
<div class="legend-color start"></div>
<span>Старт (5)</span>
</div>
</div>
</div>
</div>
<script src="common.js"></script>