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

Hücrelerden bir ızgara

Ne yapıyoruz

Balonlar tavandan satırlar hâlinde sarkar. Onları iki boyutlu bir dizide tutacağız: grid[r][c]. Yani bir satırlar listesi; her satır da bir hücreler listesi. Bir sinemanın koltuk planı gibi: sıra numarası ve koltuk numarası.

Her hücrede bir renk numarası (0–4) ya da boşsa -1 olacak. Yeni oyun (reset) ilk beş satırı rastgele renklerle dolduracak, gerisini boş bırakacak. Bu adımda ekranda bir şey değişmeyecek; ızgarayı bir sonraki adımda çizeceğiz.

```js
const COLS = 10 // bubbles in an even row; odd rows have one less and sit half a bubble to the right
const ROWS = 14

let grid // grid[r][c]: a color index, or -1 for an empty cell

function reset() {
  grid = []
  for (let r = 0; r < ROWS; r++) {
    grid.push([])
    for (let c = 0; c < COLS; c++) grid[r].push(r < 5 ? Math.floor(Math.random() * COLORS.length) : -1)
  }
}

reset()
```

Ne işe yarıyor

Sıra sende

  1. const R = 20 ... satırının altına COLS ve ROWS satırlarını yaz.
  2. COLORS satırının altına bir boş satır bırak; let grid satırını ve reset fonksiyonunu yaz.
  3. En alttaki requestAnimationFrame(loop) satırının hemen üstüne reset() yaz.
  4. Çalıştır: ekran değişmez, kontroller yeşil olmalı.

Beceriler: 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