Atölye › Missile Command Tarzı Savunma › 21/35. adım
Yere çarpan bir füzenin patlaması yanındaki füzeleri yok etmemeli; yoksa düşmanın saldırısı kendi kendini temizler ve ileride sana bedava puan verir. Füze yalnız senin patlamalarınla (ve onların başlattığı zincirle) yok olmalı.
Her patlamaya bir bayrak ekliyoruz: own ("kendi"). Önleyici ve zincir patlamalarında true, yere çarpmada false.
```js
let blasts // explosions: { x, y, age, own }: own ones destroy missiles, impacts on the ground do not
blasts.push({ x: s.x, y: s.y, age: 0, own: true })
if (blasts.some((b) => b.own && Math.hypot(m.x - b.x, m.y - b.y) <= radius(b))) {
m.done = true
blasts.push({ x: m.x, y: m.y, age: 0, own: true })
blasts.push({ x: m.x, y: m.y, age: 0, own: false })
```own'un anlamını not eder.own: true.b.own && Math.hypot(...) <= radius(b) → patlama senin mi ve füze içinde mi? && ilk yanlış parçada durur;
senin olmayan patlamaya uzaklık bile hesaplanmaz.own: true: senin başlattığın zincir de senin sayılır.own: false.let blasts satırının yorumunu kodda görüldüğü gibi değiştir.update içinde önleyicinin bıraktığı patlamaya , own: true ekle.blasts.some((b) => ...) içine, Math.hypot'tan önce b.own && ekle., own: true, yere çarpan füzenin patlamasına , own: false ekle.Beceriler: Çarpışma tespiti, Oyun durumları
← Zincirleme tepkime Her füzeye puan →