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

Hedefler

Ne yapıyoruz

Sırada hedefler: kutuların gideceği yerler. Onlar da hiç yer değiştirmez, bu yüzden onları da bir kümede tutarız.

Dikkat: üç harf hedef demek. . boş bir hedef; * üstünde kutu olan bir hedef; + üstünde oyuncu duran bir hedef. Hedefleri turuncu, küçük bir nokta olarak çizeceğiz.

```js
let goals

  goals = new Set()

      if (ch === '.' || ch === '*' || ch === '+') goals.add(key(x, y))

  for (const k of goals) {
    const [x, y] = k.split(',').map(Number)
    tile(x, y, '#f59e0b', 18)
  }
```

Ne işe yarıyor

Sıra sende

  1. let walls satırının altına let goals yaz.
  2. loadLevel içinde walls = new Set() satırının altına goals = new Set() yaz.
  3. Aynı fonksiyonda if (ch === '#') ... satırının altına hedef satırını yaz.
  4. draw içinde duvar döngüsünün kapanan }'sinin altına hedef döngüsünü yaz.
  5. Çalıştır: koridorun sağ ucunda turuncu küçük bir nokta görmelisin.

Beceriler: Oyun durumları, Canvas üzerine çizim

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