amazeing 0.8.1

Amazeing is a maze generator/solver application with simulation/visualization.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Color Scheme Previewer</title>
    <style>
        body {
            background-color: rgba(186, 180, 180, 0.38);
        }
        table.back>tbody>tr>td {
            width: 15px;
            height: 15px;
        }

        #colorScheme, #random-colors {
            margin-left: 100px;
        }

        .back {
            background-color: #02131b;
            padding: 10px;
        }
    </style>
</head>
<body>


<table>
    <tbody>
    <tr>
        <td>
            <table>
                <tbody>
                <tr>
                    <td>Background:</td>
                    <td><input id="back-i" type="color" value="#02131b" onchange="changeColor('back', this.value)"></td>
                    <td><input id="back-ii" type="text" value="02131b" onchange="changeColor('back', this.value)"></td>
                </tr>
                <tr>
                    <td>Block:</td>
                    <td><input id="bloc-i" type="color" value="#543b3b" onchange="changeColor('bloc', this.value)"></td>
                    <td><input id="bloc-ii" type="text" value="#543b3b" onchange="changeColor('bloc', this.value)"></td>
                </tr>
                <tr>
                    <td>Open:</td>
                    <td><input id="open-i" type="color" value="#abb0ac" onchange="changeColor('open', this.value)"></td>
                    <td><input id="open-ii" type="text" value="#abb0ac" onchange="changeColor('open', this.value)"></td>
                </tr>
                <tr>
                    <td>Visiting:</td>
                    <td><input id="visi-i" type="color" value="#9fd350" onchange="changeColor('visi', this.value)"></td>
                    <td><input id="visi-ii" type="text" value="#9fd350" onchange="changeColor('visi', this.value)"></td>
                </tr>
                <tr>
                    <td>Visiting Peak:</td>
                    <td><input id="visp-i" type="color" value="#9fd350" onchange="changeColor('visp', this.value)"></td>
                    <td><input id="visp-ii" type="text" value="#9fd350" onchange="changeColor('visp', this.value)"></td>
                </tr>
                <tr>
                    <td>Path:</td>
                    <td><input id="path-i" type="color" value="#ffff00" onchange="changeColor('path', this.value)"></td>
                    <td><input id="path-ii" type="text" value="#ffff00" onchange="changeColor('path', this.value)"></td>
                </tr>
                <tr>
                    <td>Source:</td>
                    <td><input id="sour-i" type="color" value="#fd632b" onchange="changeColor('sour', this.value)"></td>
                    <td><input id="sour-ii" type="text" value="#fd632b" onchange="changeColor('sour', this.value)"></td>
                </tr>
                <tr>
                    <td>Destination:</td>
                    <td><input id="dest-i" type="color" value="#2af024" onchange="changeColor('dest', this.value)"></td>
                    <td><input id="dest-ii" type="text" value="#2af024" onchange="changeColor('dest', this.value)"></td>
                </tr>
                <tr>
                    <td>Traversed:</td>
                    <td><input id="trav-i" type="color" value="#7c7ef4" onchange="changeColor('trav', this.value)"></td>
                    <td><input id="trav-ii" type="text" value="#7c7ef4" onchange="changeColor('trav', this.value)"></td>
                </tr>
                </tbody>
            </table>
        </td>
        <td>
            <pre id="colorScheme">
color_bg = 0x00202e
color_block = 0x402510
color_open = 0x979a9a
color_visiting = 0x6db3d1
color_visiting_peak = 0x6db3d1
color_path = 0xeacc38
color_source = 0xc63d0a
color_destination = 0x23c61e
color_traversed = 0x5d5fae
</pre>
            <button id="random-colors" onclick="randomize_colors()">Randomize Colors</button>
        </td>
    </tr>
    </tbody>
</table>

<table class="back">
    <tbody>
        <tr><td class="path"></td><td class="path"></td><td class="path"></td><td class="path"></td><td class="path"></td><td class="path"></td><td class="path"></td><td class="path"></td><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td></tr>
        <tr><td class="path"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="path"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="sour"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td></tr>
        <tr><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="open"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="path"></td><td class="path"></td><td class="path"></td><td class="path"></td><td class="path"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="dest"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="path"></td><td class="path"></td><td class="path"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="path"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="visi"></td><td class="bloc"></td><td class="path"></td><td class="path"></td><td class="path"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="visi"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="visi"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="visi"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="visi"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="visi"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="visi"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="visi"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="visi"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="visp"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="visp"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="bloc"></td><td class="trav"></td></tr>
        <tr><td class="open"></td><td class="open"></td><td class="open"></td><td class="open"></td><td class="open"></td><td class="open"></td><td class="open"></td><td class="open"></td><td class="bloc"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="trav"></td><td class="bloc"></td></tr>
    </tbody>
</table>
<script type="text/javascript">
    function randomize_colors() {
        let classes = ["back", "bloc", "open", "visi", "visp", "path", "sour", "dest", "trav"];
        for (let i = 0; i < classes.length; i++) {
            let color = '#'+(Math.random()*0xFFFFFF<<0).toString(16);
            changeColor(classes[i], color);
            document.getElementById(classes[i] + "-i").value = color;
            document.getElementById(classes[i] + "-ii").value = color;
        }
    }

    function changeColor(className, color) {
        document.querySelectorAll("." + className).forEach(el => el.style.backgroundColor = color);
        document.getElementById(className + "-i").value = color;
        document.getElementById(className + "-ii").value = color;
        updateColorScheme(className, color);
    }

    function updateColorScheme(className, color) {
        let colorMappings = {
            "back": "color_bg",
            "bloc": "color_block",
            "open": "color_open",
            "visi": "color_visiting",
            "visp": "color_visiting_peak",
            "path": "color_path",
            "sour": "color_source",
            "dest": "color_destination",
            "trav": "color_traversed"
        };

        let hexColor = color.replace("#", "0x");
        let preElement = document.getElementById("colorScheme");
        let text = preElement.textContent;
        let regex = new RegExp(colorMappings[className] + " = 0x[0-9a-fA-F]+", "g");
        preElement.textContent = text.replace(regex, `${colorMappings[className]} = ${hexColor}`);
    }

    randomize_colors();
</script>

</body>
</html>