Atölye › Sudoku › 23/28. adım
Takıldın mı? H tuşu çözümden bir hücre doldursun: seçili hücre boş ya da yanlışsa onu, değilse ilk boş ya da yanlış hücreyi. Kaç ipucu alındığı da sayılsın (rekorda işe yarayacak).
```js
let hints
hints = 0
// A hint fills the selected cell (or the first empty one) from the solution.
function hint() {
if (won) return
let cell = grid[selected.r][selected.c] === solution[selected.r][selected.c] ? null : selected
for (let i = 0; i < 81 && !cell; i++) {
const r = Math.floor(i / 9)
const c = i % 9
if (grid[r][c] !== solution[r][c]) cell = { r, c }
}
if (!cell) return
selected = cell
grid[cell.r][cell.c] = solution[cell.r][cell.c]
hints += 1
checkWin()
}
else if (event.key === 'h' || event.key === 'H') hint()
```grid[...] === solution[...] ? null : selected → seçili hücre zaten doğruysa null (başka hücre aranacak), değilse
seçili hücre.for (let i = 0; i < 81 && !cell; i++) → 81 hücreyi numarayla dolaş; bir hücre bulununca (!cell yanlış olunca)
döngü durur.grid[r][c] !== solution[r][c] → boş ya da yanlış hücre.if (!cell) return → her şey doğruysa yapacak bir şey yok.selected = cell → ipucunun geldiği hücre seçilir, oyuncu nereye baktığını görür.hints += 1 → ipucu sayacı; sonra checkWin(): son hücre ipucuyla da tamamlanabilir.let won satırının altına let hints yaz; reset'in sonuna hints = 0 ekle.enter fonksiyonunun altına yorumu ve hint fonksiyonunu yaz.keydown zincirinin sonuna H satırını ekle.Beceriler: Oyun durumları, Klavye ve fare girdisi
← Her oyunda yeni bulmaca En iyi süre →