Atölye › Bomberman Tarzı Arena › 34/42. adım
Kasa patlatmak, bazıları bir ödül saklayınca daha heyecanlı olur. Kabaca her beş kasadan biri bir güçlendirme saklayacak:
'bomb' → aynı anda bir bomba fazla,'fire' → daha uzun alevler.Nerede tutalım? İkinci bir ızgara çoğunlukla boş kalırdı. Bir kareden eşyasına giden bir Map (eşleme tablosu)
daha uygun: yalnız bir şeyi olan kareler yer kaplar. Bir sözlük gibi: her anahtara bir değer karşılık gelir.
```js
let items // 'r,c' -> 'bomb' or 'fire', hidden under crates until they burn
const key = (r, c) => r + ',' + c
items = new Map()
else {
grid[r].push('+')
if (Math.random() < 0.2) items.set(key(r, c), Math.random() < 0.5 ? 'bomb' : 'fire')
}
```let items → saklı eşyalar tablosu.const key = (r, c) => r + ',' + c → kareyi yazıya çevirir: key(3, 5) → '3,5'. Sayıyla yazıyı + ile yan yana
ekler. Anahtarların yeniden bulunabilmesi için basit değerler olmalı; [3, 5] gibi bir dizi her seferinde yeni bir
dizi olurdu ve bulunamazdı.items = new Map() → her yeni arenada boş bir tablo:items.set('3,5', 'fire') → anahtara değer yazar,items.get('3,5') → okur (yoksa undefined),items.delete('3,5') → siler.else'ten sonra süslü parantez:grid[r].push('+') → kasayı koy,if (Math.random() < 0.2) items.set(...) → %20 ihtimalle altına bir eşya sakla; hangisi olacağını ikinci bir
yazı-tura seçer: Math.random() < 0.5 ? 'bomb' : 'fire'.let grid satırının altına let items yaz.const near = ... satırının üstüne key satırını yaz.makeGrid içinde grid = [] satırının altına items = new Map() yaz.else grid[r].push('+') satırını sil; yerine else { ... } bloğunu yaz.Beceriler: Diziler ve nesneler, Oyun durumları
← Bütün düşmanlar gitti Güçlendirmeleri göster →