Atölye › Sudoku › 3/28. adım

Metinden bir bulmaca

Ne yapıyoruz

Bir bulmaca 81 rakamdan oluşur: satır satır, boş hücre için 0. Onu tek bir metin olarak yazıp 9 × 9'luk bir sayı ızgarasına çeviriyoruz, sonra rakamları hücrelere çiziyoruz. (Bu bulmaca Vikipedi'deki ünlü sudoku örneği.)

```js
// The puzzle, row by row; 0 is an empty cell.
const PUZZLE = '530070000600195000098000060800060003400803001700020006060000280000419005000080079'

let grid // grid[r][c]: 1 to 9, or 0 for an empty cell

function reset() {
  grid = Array.from({ length: 9 }, (_, r) => [...PUZZLE.slice(r * 9, r * 9 + 9)].map(Number))
}

      if (grid[r][c] === 0) continue
      ctx.fillStyle = '#0f172a'
      ctx.font = 'bold 26px sans-serif'
      ctx.textAlign = 'center'
      ctx.fillText(String(grid[r][c]), x + SIZE / 2, y + SIZE / 2 + 9)
```

Ne işe yarıyor

Sıra sende

  1. const TOP = 56 satırının altına bir boş satır bırakıp yorumu, PUZZLE'ı, let grid'i ve reset'i yaz. (81 rakamı dikkatle yaz; hata yaparsan kontrol yakalar.)
  2. draw içinde beyaz hücreyi çizen satırın altına rakam satırlarını yaz.
  3. En alttaki draw() satırının üstüne reset() yaz.
  4. Çalıştır: bulmacanın rakamları görünmeli.

Beceriler: Diziler ve nesneler

Tüm adımlar

  1. Dokuza dokuz
  2. Çizgiler ve kutular
  3. Metinden bir bulmaca
  4. Bulmacanın kendi rakamları
  5. Çizmeye devam
  6. Seçili hücre
  7. Satırı, sütunu ve kutuyu aydınlat
  8. Her yerde aynı rakam
  9. Tıklayarak seç
  10. Oklarla gez
  11. Rakam yaz
  12. Tek döngüde üç kural
  13. Hataları göster
  14. Çözüldü!
  15. Saat
  16. Çözüldü mesajı
  17. Yeniden oyna
  18. En kolay hücre
  19. Çözücü
  20. Rastgele sıra
  21. Bulmaca icat et
  22. Her oyunda yeni bulmaca
  23. İpuçları
  24. En iyi süre
  25. Yeni bulmaca için N
  26. Rakam tuş takımı
  27. Tuş takımına dokun
  28. Kendin yap: geri al