Atölye › Köstebek Vurmaca › 7/18. adım
Tıklama bize tuval üzerinde bir nokta verir. O nokta hangi deliğin dairesinin içinde? Bir noktanın daire içinde olması için dairenin merkezine uzaklığı yarıçaptan küçük olmalı. Uzaklığı Pisagor ile buluruz: yatay farkın karesi artı dikey farkın karesi.
```js
function holeAt(x, y) {
return holes.find((hole) => {
const dx = x - hole.x
const dy = y - hole.y
return dx * dx + dy * dy <= HOLE_R * HOLE_R
})
}
```holes.find((hole) => { ... }) → listede, içteki fonksiyon true verdiği ilk deliği bulur; hiçbiri değilse
undefined.const dx = x - hole.x → noktanın deliğin ortasından yatay uzaklığı; dy dikey uzaklığı.dx * dx + dy * dy <= HOLE_R * HOLE_R → Pisagor: uzaklığın karesi yarıçapın karesinden küçük ya da eşitse nokta
dairenin içinde. İki tarafın karesini karşılaştırmak karekök hesaplamaktan daha kolay ve aynı sonucu verir.function update() { satırının üstüne holeAt fonksiyonunu yaz (arada bir boş satır kalsın). Çalıştır.
Beceriler: Çarpışma tespiti