Atölye › Sudoku › 9/28. adım
Bir hücreye tıklamak onu seçsin. Tıklamanın yerini önce canvas piksellerine, sonra satıra ve sütuna çeviriyoruz.
```js
canvas.addEventListener('pointerdown', (event) => {
const rect = canvas.getBoundingClientRect()
const x = ((event.clientX - rect.left) * canvas.width) / rect.width - LEFT
const y = ((event.clientY - rect.top) * canvas.height) / rect.height
const r = Math.floor((y - TOP) / SIZE)
const c = Math.floor(x / SIZE)
if (r >= 0 && r < 9 && c >= 0 && c < 9) selected = { r, c }
})
```canvas.getBoundingClientRect() → canvas'ın sayfadaki yeri ve ekrandaki boyu.((event.clientX - rect.left) * canvas.width) / rect.width → tıklamayı canvas'ın kendi piksellerine çevirir (canvas
ekranda küçültülmüş olabilir). Sondaki - LEFT → tahtanın sol kenarından ölç.Math.floor(x / SIZE) → kaçıncı sütun; Math.floor((y - TOP) / SIZE) → kaçıncı satır.if (r >= 0 && r < 9 && c >= 0 && c < 9) → tahtanın içindeyse seç; dışarıya tıklamak bir şey yapmaz.selected = { r, c } → { r: r, c: c }'nin kısası.reset fonksiyonunun altına bir boş satır bırakıp pointerdown dinleyicisini yaz. Çalıştır ve hücrelere tıkla.
Beceriler: Klavye ve fare girdisi
← Her yerde aynı rakam Oklarla gez →