Atölye › 15 Bulmacası › 14/27. adım

Taşa tıkla

Ne yapıyoruz

Şimdi fareyle (ya da parmakla) oynayalım: bir taşa tıklayınca move çağrılsın.

Tıklanan noktanın hangi kare olduğunu bulmalıyız. Yöntem: noktayı tahtanın sol üst köşesine göre ölç, sonra bir kare + aralık genişliğine (96) böl ve aşağı yuvarla. 250. piksel → 250 / 96 = 2,6 → 2. sütun.

```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 - TOP
  const col = Math.floor(x / (SIZE + GAP))
  const row = Math.floor(y / (SIZE + GAP))
  if (col >= 0 && col < N && row >= 0 && row < N) move(row * N + col)
})
```

Ne işe yarıyor

Sıra sende

function squareX(i) { satırının üstüne dinleyiciyi yaz; arada bir boş satır kalsın. Çalıştır, sonra 15'e ya da 12'ye tıkla: boşluğa geçmeli. Uzaktaki bir taşa tıklamak hiçbir şey yapmamalı.

Beceriler: Klavye ve fare girdisi

Tüm adımlar

  1. Tek listede bir tahta
  2. Tuval ve kalem
  3. Masayı boya
  4. Çizen bir fonksiyon
  5. Satır ve sütun
  6. Her kare nerede
  7. Bir taş çiz
  8. Taşın üstündeki sayı
  9. Bütün taşlar
  10. Tekrar tekrar çiz
  11. N'den çözülmüş tahta
  12. Komşular
  13. Taş kaydır
  14. Taşa tıkla
  15. Ok tuşları
  16. Hamleleri say
  17. Gerçek kaydırmalarla karıştır
  18. Hangi tahtalar çözülür?
  19. Çözüldü mü?
  20. Kaymayı hatırla
  21. Kareleri say
  22. Akıcı kayma
  23. Çözüldü!
  24. Kazandığını göster
  25. Yeniden oyna
  26. Kırılacak bir rekor
  27. Kendin yap: bir süre sayacı