split editor

This commit is contained in:
2025-10-20 21:07:28 +05:00
parent 023ccd03d8
commit 88643415aa
34 changed files with 3796 additions and 1184 deletions

View File

@@ -26,7 +26,6 @@
border-radius: 20px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
padding: 30px;
max-width: 1200px;
width: 100%;
}
@@ -244,111 +243,6 @@
border-radius: 4px;
border: 2px solid #dee2e6;
}
.visualization-panel {
margin-top: 20px;
padding: 20px;
background: #f8f9fa;
border-radius: 12px;
border: 2px solid #dee2e6;
}
.visualization-panel h3 {
margin-bottom: 15px;
color: #495057;
}
.playback-controls {
display: flex;
gap: 10px;
align-items: center;
flex-wrap: wrap;
margin-top: 15px;
}
.playback-btn {
padding: 10px 20px;
border: none;
border-radius: 8px;
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s;
background: #667eea;
color: white;
min-width: auto;
}
.playback-btn:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
.playback-btn:disabled {
opacity: 0.5;
cursor: not-allowed;
transform: none;
}
.speed-control {
display: flex;
align-items: center;
gap: 10px;
}
.speed-control input[type="range"] {
width: 150px;
}
.step-info {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
margin-top: 15px;
padding: 15px;
background: white;
border-radius: 8px;
}
.info-item {
display: flex;
flex-direction: column;
}
.info-label {
font-size: 0.85em;
color: #6c757d;
margin-bottom: 5px;
}
.info-value {
font-size: 1.2em;
font-weight: 600;
color: #333;
}
.trajectory-path {
stroke: #667eea;
stroke-width: 3;
fill: none;
opacity: 0.6;
}
.current-position {
fill: #f5576c;
stroke: white;
stroke-width: 2;
}
.start-marker {
fill: #28a745;
stroke: white;
stroke-width: 2;
}
.hidden {
display: none;
}
</style>
</head>
<body>
@@ -413,63 +307,18 @@
</div>
<input type="file" id="fileInput" accept=".json" onchange="importMap(event)">
</div>
<div class="control-group">
<h3>🎬 Визуализация решения</h3>
<div class="buttons">
<button class="btn-primary" onclick="document.getElementById('solutionInput').click()">📂 Загрузить решение</button>
<button class="btn-danger" onclick="clearVisualization()" id="clearVisBtn" disabled>🗑️ Очистить</button>
</div>
<input type="file" id="solutionInput" accept=".json" onchange="loadSolution(event)" style="display: none;">
</div>
</div>
<div class="canvas-wrapper">
<canvas id="mapCanvas"></canvas>
</div>
<div id="visualizationPanel" class="visualization-panel hidden">
<h3>🎮 Управление воспроизведением</h3>
<div class="playback-controls">
<button class="playback-btn" onclick="playVisualization()" id="playBtn">▶ Play</button>
<button class="playback-btn" onclick="pauseVisualization()" id="pauseBtn" disabled>⏸ Pause</button>
<button class="playback-btn" onclick="resetVisualization()">⏮ Reset</button>
<button class="playback-btn" onclick="stepForward()">⏭ Step</button>
<div class="speed-control">
<label for="speedSlider">Скорость:</label>
<input type="range" id="speedSlider" min="1" max="10" value="5" onchange="updateSpeed()">
<span id="speedValue">5x</span>
</div>
</div>
<div class="step-info">
<div class="info-item">
<span class="info-label">Шаг</span>
<span class="info-value" id="stepNumber">0 / 0</span>
</div>
<div class="info-item">
<span class="info-label">Позиция (x, y)</span>
<span class="info-value" id="positionValue">(0, 0)</span>
</div>
<div class="info-item">
<span class="info-label">Скорость (vx, vy)</span>
<span class="info-value" id="velocityValue">(0, 0)</span>
</div>
<div class="info-item">
<span class="info-label">Ускорение (ax, ay)</span>
<span class="info-value" id="accelerationValue">(0, 0)</span>
</div>
</div>
</div>
<div class="info">
<strong>💡 Подсказки:</strong>
• Кликайте по ячейкам для изменения типа<br>
• Удерживайте кнопку мыши для рисования<br>
• Экспортируйте карту в JSON для использования в игре<br>
Загрузите решение для визуализации прохождения карты
Для визуализации решений используйте отдельный <a href="../solution-player/index.html" style="color: #0d47a1; font-weight: bold;">Визуализатор решений</a>
</div>
<div class="control-group">