| 1 |
<!DOCTYPE html> |
| 2 |
<html lang="en"> |
| 3 |
<head> |
| 4 |
<meta charset="UTF-8"> |
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| 6 |
<link rel="stylesheet" href="css/styles.css"> |
| 7 |
<title>ASCII Sorting Visualizer</title> |
| 8 |
</head> |
| 9 |
<body> |
| 10 |
<div class="container"> |
| 11 |
<header> |
| 12 |
<div class="ascii-title"> |
| 13 |
╔═╗╔═╗╔═╗╦╦ ╔═╗╔═╗╦═╗╔╦╗╔═╗╦═╗ |
| 14 |
╠═╣╚═╗║ ║║ ╚═╗║ ║╠╦╝ ║ ║╣ ╠╦╝ |
| 15 |
╩ ╩╚═╝╚═╝╩╩ ╚═╝╚═╝╩╚═ ╩ ╚═╝╩╚═ |
| 16 |
</div> |
| 17 |
<p class="subtitle">>> TERMINAL SORTING VISUALIZATION <<</p> |
| 18 |
</header> |
| 19 |
|
| 20 |
<div class="controls"> |
| 21 |
<button onclick="generateArray()">NEW_ARRAY</button> |
| 22 |
<button class="algorithm-btn" onclick="selectAlgorithm('bubble')">BUBBLE</button> |
| 23 |
<button class="algorithm-btn" onclick="selectAlgorithm('selection')">SELECTION</button> |
| 24 |
<button class="algorithm-btn" onclick="selectAlgorithm('insertion')">INSERTION</button> |
| 25 |
<button class="algorithm-btn" onclick="selectAlgorithm('quick')">QUICK</button> |
| 26 |
<button class="algorithm-btn" onclick="selectAlgorithm('merge')">MERGE</button> |
| 27 |
<button class="algorithm-btn" onclick="selectAlgorithm('heap')">HEAP</button> |
| 28 |
<button class="algorithm-btn" onclick="selectAlgorithm('shell')">SHELL</button> |
| 29 |
<button class="algorithm-btn" onclick="selectAlgorithm('cocktail')">COCKTAIL</button> |
| 30 |
<button class="algorithm-btn" onclick="selectAlgorithm('radix')">RADIX</button> |
| 31 |
<button class="algorithm-btn" onclick="selectAlgorithm('gnome')">GNOME</button> |
| 32 |
<button class="algorithm-btn" onclick="selectAlgorithm('bogo')">BOGO</button> |
| 33 |
<button class="algorithm-btn" onclick="selectAlgorithm('comb')">COMB</button> |
| 34 |
<button class="algorithm-btn" onclick="selectAlgorithm('pancake')">PANCAKE</button> |
| 35 |
<button class="algorithm-btn" onclick="selectAlgorithm('bitonic')">BITONIC</button> |
| 36 |
<button id="startBtn" onclick="startSort()">EXECUTE</button> |
| 37 |
<button id="soundBtn" onclick="toggleSound()">SOUND: ON</button> |
| 38 |
<div class="speed-control"> |
| 39 |
<span>SPEED:</span> |
| 40 |
<input type="range" id="speedSlider" min="1" max="100" value="50"> |
| 41 |
</div> |
| 42 |
</div> |
| 43 |
|
| 44 |
<div class="visualization-container"> |
| 45 |
<div class="ascii-display" id="visualization"></div> |
| 46 |
</div> |
| 47 |
|
| 48 |
<div class="stats"> |
| 49 |
<div class="stat"> |
| 50 |
<div class="stat-label">:: COMPARISONS ::</div> |
| 51 |
<div class="stat-value glitch" id="comparisons">0</div> |
| 52 |
</div> |
| 53 |
<div class="stat"> |
| 54 |
<div class="stat-label">:: SWAPS ::</div> |
| 55 |
<div class="stat-value glitch" id="swaps">0</div> |
| 56 |
</div> |
| 57 |
<div class="stat"> |
| 58 |
<div class="stat-label">:: ARRAY_SIZE ::</div> |
| 59 |
<div class="stat-value" id="arraySize">20</div> |
| 60 |
</div> |
| 61 |
<div class="stat" id="attemptsContainer" style="display: none;"> |
| 62 |
<div class="stat-label">:: ATTEMPTS ::</div> |
| 63 |
<div class="stat-value" id="attempts">0</div> |
| 64 |
</div> |
| 65 |
</div> |
| 66 |
</div> |
| 67 |
<script src="js/app.js"></script> |
| 68 |
</body> |
| 69 |
</html> |