Atölye › Puzzle Bobble Tarzı Balon Atıcı › 20/31. adım

Asılı kalmayanlar düşsün

Ne yapıyoruz

Bir grup patlayınca, altındaki bazı balonlar tavana bağlı kalmayabilir. Onlar da düşsün ve her biri 20 puan getirsin: oyunun en tatlı anı budur.

Tavana bağlı olanları bulmak için aynı flood fill fonksiyonunu kullanıyoruz: bu sefer en üst satırdaki bütün balonlardan başlayıp herhangi bir balona yayılıyoruz. Ulaşılamayan her balon boşlukta asılı demektir.

```js
// Whatever no longer hangs from the ceiling drops, worth double.
const top = []
for (let c2 = 0; c2 < cols(0); c2++) if (grid[0][c2] >= 0) top.push([0, c2])
const held = new Set(connected(top, (nr, nc) => grid[nr][nc] >= 0).map(([hr, hc]) => hr * COLS + hc))
const loose = []
for (let r2 = 0; r2 < ROWS; r2++) for (let c2 = 0; c2 < cols(r2); c2++) {
  if (grid[r2][c2] >= 0 && !held.has(r2 * COLS + c2)) loose.push([r2, c2])
}
remove(loose, 20)
```

Ne işe yarıyor

Sıra sende

attach içinde, if (group.length >= 3) bloğunda remove(group, 10) satırının altına yeni satırları yaz. Çalıştır: bir grubu alttan patlat, altındakiler düşsün.

Beceriler: Döngüler, Diziler ve nesneler

Tüm adımlar

  1. Gece göğü
  2. Bir balon
  3. Hücrelerden bir ızgara
  4. Izgarayı çiz
  5. İç içe oturan balonlar
  6. Atıcı
  7. Yukarı nişan al
  8. Oklarla çevir
  9. İşaretçiyle nişan al
  10. Ateş!
  11. Uç
  12. Duvarlardan sek
  13. Bir şeye değiyor mu?
  14. Izgaraya otur
  15. Daha küçük adımlar
  16. Altı komşu
  17. Taşan boya (flood fill)
  18. Üç tane olunca patla
  19. Düşen balonlar
  20. Asılı kalmayanlar düşsün
  21. Skoru göster
  22. Yalnız işe yarayan renkler
  23. Atışları say
  24. Tavan iniyor
  25. Kazan ya da kaybet
  26. Tehlike çizgisi
  27. Bitiş mesajı
  28. Yeniden oyna
  29. En iyi skor
  30. Noktalı kılavuz
  31. Kendin yap: balonları değiştir