Atölye › Sudoku › 13/28. adım
Satırında, sütununda ya da kutusunda aynısı olan bir rakam, hücresini kırmızıya boyasın; çakıştığı hücre de kırmızı olsun. Hatayı hemen görürsün.
Püf nokta: canPlace hücrenin kendisini de sayar (kendi rakamı zaten orada). Bu yüzden kontrol ederken hücreyi bir
anlığına boşaltıp sonra geri koyuyoruz.
```js
// Does the digit at (r, c) clash with another cell in its row, column or box?
function conflict(r, c) {
const d = grid[r][c]
if (d === 0) return false
grid[r][c] = 0
const ok = canPlace(grid, r, c, d)
grid[r][c] = d
return !ok
}
if (conflict(r, c)) fill = '#fecaca'
```if (d === 0) return false → boş hücre çakışmaz.grid[r][c] = 0 → hücreyi bir anlığına boşalt; canPlace yalnız öteki hücrelere baksın.grid[r][c] = d → rakamı geri koy. Bir şeyi deneyip eski hâline getirmek sık kullanılan bir yöntem.return !ok → konamıyorsa çakışma var.enter fonksiyonunun üstüne yorumu ve conflict fonksiyonunu yaz (arada bir boş satır kalsın).draw içinde renk kurallarının en sonuna (seçili hücre kuralının altına) kırmızı kuralı yaz.Beceriler: Oyun durumları
← Tek döngüde üç kural Çözüldü! →