| 
							
							<html>
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							<head>
 | 
						
						
						
						
							 | 
							
							    <meta charset="UTF-8">
 | 
						
						
						
						
							 | 
							
							    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
						
						
						
						
							 | 
							
							    <script type="text/javascript" src="sudoku.js"></script>
 | 
						
						
						
						
							 | 
							
							    <style>
 | 
						
						
						
						
							 | 
							
							        body {
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							            background-color: #222;
 | 
						
						
						
						
							 | 
							
							        }
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							        .sudoku {
 | 
						
						
						
						
							 | 
							
							            float: left;
 | 
						
						
						
						
							 | 
							
							            color: hwb(0 20% 80%);
 | 
						
						
						
						
							 | 
							
							            background-color: blue;
 | 
						
						
						
						
							 | 
							
							        }
 | 
						
						
						
						
							 | 
							
							    </style>
 | 
						
						
						
						
							 | 
							
							    <script type="text/javascript">
 | 
						
						
						
						
							 | 
							
							        const renderPuzzleFromString = (str, readOnly, size, darkMode) => {
 | 
						
						
						
						
							 | 
							
							            darkMode = true
 | 
						
						
						
						
							 | 
							
							            const sudoku = document.createElement('my-sudoku')
 | 
						
						
						
						
							 | 
							
							            sudoku.setAttribute('puzzle', str ? str : 'generate')
 | 
						
						
						
						
							 | 
							
							            if(readOnly)
 | 
						
						
						
						
							 | 
							
							            sudoku.setAttribute('read-only', 'true')
 | 
						
						
						
						
							 | 
							
							            sudoku.classList.add('sudoku')
 | 
						
						
						
						
							 | 
							
							            if(darkMode){
 | 
						
						
						
						
							 | 
							
							                sudoku.classList.add('sudoku-dark')
 | 
						
						
						
						
							 | 
							
							            }
 | 
						
						
						
						
							 | 
							
							            document.body.appendChild(sudoku);
 | 
						
						
						
						
							 | 
							
							            const id = generateIdByPosition(sudoku);
 | 
						
						
						
						
							 | 
							
							            sudoku.id = id
 | 
						
						
						
						
							 | 
							
							            return sudoku
 | 
						
						
						
						
							 | 
							
							        }
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							        const renderPuzzles = (readOnly,size,darkMode) => {
 | 
						
						
						
						
							 | 
							
							            renderPuzzleFromString(null,readOnly, size, darkMode)
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							        }
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							        document.addEventListener('DOMContentLoaded', (e) => {
 | 
						
						
						
						
							 | 
							
							            let size = randInt(4, 20);
 | 
						
						
						
						
							 | 
							
							            let darkMode = randInt(0,1);
 | 
						
						
						
						
							 | 
							
							            renderPuzzleFromString(`0  0  8  0  9  0  0  0  0 
 | 
						
						
						
						
							 | 
							
							 0  9  0  0  0  7  0  0  7 
 | 
						
						
						
						
							 | 
							
							 0  0  0  0  2  0  0  0  0 
 | 
						
						
						
						
							 | 
							
							 0  0  3  0  0  0  0  0  0 
 | 
						
						
						
						
							 | 
							
							 5  0  0  0  8  0  0  0  0 
 | 
						
						
						
						
							 | 
							
							 0  0  6  0  0  0  0  0  0 
 | 
						
						
						
						
							 | 
							
							 0  0  0  0  0  3  9  0  0 
 | 
						
						
						
						
							 | 
							
							 9  1  0  0  0  0  0  0  0 
 | 
						
						
						
						
							 | 
							
							 0  0  0  0  1  0  0  0  0 `, true, size, darkMode)
 | 
						
						
						
						
							 | 
							
							            renderPuzzleFromString(`2  3  8  1  9  7  4  5  6 
 | 
						
						
						
						
							 | 
							
							        4  9  1  3  5  0  2  8  7 
 | 
						
						
						
						
							 | 
							
							        6  5  0  0  0  0  1  3  9 
 | 
						
						
						
						
							 | 
							
							        1  2  3  0  4  9  0  6  8 
 | 
						
						
						
						
							 | 
							
							        5  7  9  6  8  1  3  2  4 
 | 
						
						
						
						
							 | 
							
							        8  4  0  7  3  2  0  9  1 
 | 
						
						
						
						
							 | 
							
							        7  8  4  2  6  3  9  1  5 
 | 
						
						
						
						
							 | 
							
							        9  1  2  8  7  5  0  4  3 
 | 
						
						
						
						
							 | 
							
							        3  6  5  9  1  4  8  7  0
 | 
						
						
						
						
							 | 
							
							       `, true, size, darkMode)
 | 
						
						
						
						
							 | 
							
							            renderPuzzleFromString(` 0  0  8  0  9  0  0  0  0 
 | 
						
						
						
						
							 | 
							
							        0  9  0  0  0  0  0  0  7 
 | 
						
						
						
						
							 | 
							
							        0  0  0  0  2  0  0  0  0 
 | 
						
						
						
						
							 | 
							
							        0  0  3  0  0  0  0  0  0 
 | 
						
						
						
						
							 | 
							
							        5  0  0  0  8  0  0  0  0 
 | 
						
						
						
						
							 | 
							
							        0  0  6  0  0  0  0  0  0 
 | 
						
						
						
						
							 | 
							
							        0  0  0  0  0  3  9  0  0 
 | 
						
						
						
						
							 | 
							
							        9  1  0  0  0  0  0  0  0 
 | 
						
						
						
						
							 | 
							
							        0  0  0  0  1  0  0  0  0`, size, darkMode)
 | 
						
						
						
						
							 | 
							
							            for (let i = 0; i < 30; i++) {
 | 
						
						
						
						
							 | 
							
							                renderPuzzles(true, size, darkMode)
 | 
						
						
						
						
							 | 
							
							            }
 | 
						
						
						
						
							 | 
							
							        });
 | 
						
						
						
						
							 | 
							
							    </script>
 | 
						
						
						
						
							 | 
							
							</head>
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							<body>
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							</body>
 | 
						
						
						
						
							 | 
							
							
 | 
						
						
						
						
							 | 
							
							</html> |