|  | <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> |