Atölye › Sokoban › 6/29. adım

Duvarları oku

Ne yapıyoruz

Şimdi yazıyı okuyacağız: bölümün her satırını, satırdaki her harfi gezip ne olduğuna bakacağız. Satırın sırası y (satır), harfin sırası x (sütun) olur. Bu adımda sadece duvarları (#) topluyoruz; kalanlar sonraki adımlarda.

Duvarları bir Set (küme) içinde tutacağız. Küme bir liste gibidir ama her değeri bir kez tutar ve "şu var mı?" sorusunu anında cevaplar.

```js
let level = 0
let walls

function loadLevel(index) {
  level = index
  walls = new Set()
  LEVELS[level].forEach((line, y) => {
    ;[...line].forEach((ch, x) => {
      if (ch === '#') walls.add(key(x, y))
    })
  })
}

loadLevel(0)
```

Ne işe yarıyor

Sıra sende

  1. const key = ... satırının üstüne let level = 0 ve let walls satırlarını yaz; key ile arada bir boş satır kalsın.
  2. key satırının altına bir boş satır bırakıp loadLevel fonksiyonunu yaz.
  3. En alttaki draw() satırının üstüne loadLevel(0) yaz.
  4. Çalıştır. Duvarları henüz çizmiyoruz; kontroller kümeyi okuyor.

Beceriler: Diziler ve nesneler, Oyun durumları

Tüm adımlar

  1. Yazıyla çizilmiş bir bölüm
  2. Tuval ve kalem
  3. Depo zemini
  4. Çizen bir fonksiyon
  5. Her kareye bir ad
  6. Duvarları oku
  7. Duvarları çiz
  8. Bölümü ortala
  9. Hedefler
  10. Kutular
  11. Oyuncu
  12. İki bölüm daha
  13. Bir adım
  14. Oklarla yürü
  15. Kutular yolu kapatır
  16. Kutu it
  17. Hedefteki kutu yeşile döner
  18. Çözüldü!
  19. Sıradaki bölüme
  20. Hangi bölüm?
  21. Alttaki satır
  22. Hamleleri say
  23. Oyunun fotoğrafı
  24. Her hamleden önce fotoğraf
  25. Geri al
  26. Baştan başla
  27. Her bölüm için bir rekor
  28. Rekoru göster
  29. Kendin yap: itmeleri say