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

Tek döngüde üç kural

Ne yapıyoruz

Sudoku'nun kalbindeki soru: bu rakam buraya konabilir mi? Satırında, sütununda ya da 3 × 3 kutusunda aynı rakam varsa konamaz. canPlace bu soruyu yanıtlıyor; üç kuralı tek bir 9'luk döngüde birlikte kontrol ediyor.

Bu fonksiyonu hem hataları göstermek hem de ileride bilgisayarın bulmacayı çözmesi için kullanacağız.

```js
// Can digit d go at (r, c)? Not if it is already in the row, the column or the 3 by 3 box.
function canPlace(board, r, c, d) {
  const br = r - (r % 3)
  const bc = c - (c % 3)
  for (let i = 0; i < 9; i++) {
    if (board[r][i] === d || board[i][c] === d) return false
    if (board[br + Math.floor(i / 3)][bc + (i % 3)] === d) return false
  }
  return true
}
```

Ne işe yarıyor

Sıra sende

let selected satırının altına bir boş satır bırakıp yorumu ve canPlace fonksiyonunu yaz. Çalıştır.

Beceriler: Fonksiyonlar, Döngüler

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