|
1 | 1 | document.addEventListener('DOMContentLoaded', () => {
|
2 | 2 | const grid = document.getElementById('sudokuGrid');
|
3 |
| - for (let i = 0; i < 81; i++) { |
4 |
| - const cell = document.createElement('input'); |
5 |
| - cell.setAttribute('type', 'number'); |
6 |
| - cell.setAttribute('min', '1'); |
7 |
| - cell.setAttribute('max', '9'); |
8 |
| - cell.classList.add('cell'); |
9 |
| - grid.appendChild(cell); |
| 3 | + |
| 4 | + // Generate 9 sections (3x3 blocks) |
| 5 | + for (let section = 0; section < 9; section++) { |
| 6 | + const sectionDiv = document.createElement('div'); |
| 7 | + sectionDiv.classList.add('section'); |
| 8 | + |
| 9 | + // Create 9 cells per section |
| 10 | + for (let i = 0; i < 9; i++) { |
| 11 | + const cell = document.createElement('input'); |
| 12 | + cell.setAttribute('type', 'number'); |
| 13 | + cell.setAttribute('min', '1'); |
| 14 | + cell.setAttribute('max', '9'); |
| 15 | + cell.classList.add('cell'); |
| 16 | + sectionDiv.appendChild(cell); |
| 17 | + } |
| 18 | + grid.appendChild(sectionDiv); |
10 | 19 | }
|
11 | 20 | });
|
12 | 21 |
|
13 | 22 | function getPuzzle() {
|
14 | 23 | const cells = document.querySelectorAll('.cell');
|
15 | 24 | let puzzle = [];
|
16 |
| - for (let i = 0; i < 9; i++) { |
17 |
| - let row = []; |
18 |
| - for (let j = 0; j < 9; j++) { |
19 |
| - const value = parseInt(cells[i * 9 + j].value) || 0; |
20 |
| - row.push(value); |
| 25 | + let row = []; |
| 26 | + |
| 27 | + cells.forEach((cell, index) => { |
| 28 | + const value = parseInt(cell.value) || 0; |
| 29 | + row.push(value); |
| 30 | + |
| 31 | + // Add row to puzzle every 9 cells |
| 32 | + if ((index + 1) % 9 === 0) { |
| 33 | + puzzle.push(row); |
| 34 | + row = []; |
21 | 35 | }
|
22 |
| - puzzle.push(row); |
23 |
| - } |
| 36 | + }); |
| 37 | + |
24 | 38 | return puzzle;
|
25 | 39 | }
|
26 | 40 |
|
|
0 commit comments