Atölye › Zelda Tarzı Zindan › 16/22. adım

Hatırlayan dünya

Ne yapıyoruz

Odadan çık ve geri dön: kalp yine orada, çünkü enter odayı baştan yüklüyor. Dünya neyin alındığını hatırlamalı. Alınan her kareye '0,0,11,7' gibi bir ad veriyoruz (oda ve kare) ve bir Set'te tutuyoruz; enter o kareleri zemin yapıyor.

```js
let taken // what has been picked up or opened in each room, so it stays that way

  taken = new Set()

// Load a room: its tiles (minus what was already taken), and fresh enemies on its e tiles.
function enter(rx, ry) {
  room = { rx, ry }
  tiles = ROOMS[ry][rx].map((line, row) =>
    [...line].map((ch, col) => (taken.has(rx + ',' + ry + ',' + col + ',' + row) ? '.' : ch === 'P' || ch === 'e' ? '.' : ch)),
  )

  const id = room.rx + ',' + room.ry + ',' + col + ',' + row

    taken.add(id)
```

Ne işe yarıyor

Sıra sende

  1. let tiles altına taken, reset'in en üstüne taken = new Set() yaz.
  2. enter'ın tiles satırını üç satırlık yeni hâliyle değiştir; enter'ın üstüne yorumu yaz.
  3. update'te here satırının altına id satırını, tiles[row][col] = '.' altına taken.add(id) yaz.
  4. Çalıştır: kalbi al, odadan çık, geri dön.

Beceriler: Oyun durumları, Diziler ve nesneler

Tüm adımlar

  1. Bir oda
  2. Kahraman
  3. Oyun döngüsü
  4. Yürü
  5. Duvarlar
  6. Dokunmatik ped
  7. Sonraki oda
  8. Kılıç
  9. Düşmanlar
  10. Vur!
  11. Peşine düşüyorlar
  12. Dolaşıyorlar
  13. Ah
  14. Yanıp sönme ve kalpler
  15. Anahtarlar ve kalpler
  16. Hatırlayan dünya
  17. Kilitli kapı
  18. Süre
  19. Oyun bitti
  20. Çıkış merdiveni
  21. En iyi süre
  22. Kendin yap: temizlenen odalar