83 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			83 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| 
								 | 
							
								<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>
							 |