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

Geri al

Ne yapıyoruz

Defter hazır; şimdi geri alıyoruz. undo (geri al) son fotoğrafı defterden çıkarır ve oyuncuyu, kutuları ve hamle sayısını o fotoğraftaki hâline döndürür. Z tuşu onu çağıracak.

"Sona ekle, sondan al" diye çalışan listeye yığın (stack) denir; üst üste konmuş tabaklar gibi: en son koyduğun tabağı ilk alırsın. Geri alma için tam uygun: en son hamle ilk geri alınır.

```js
function undo() {
  const previous = history.pop()
  if (!previous) return
  ;({ player, boxes, moves } = JSON.parse(previous))
}

  if (event.key.toLowerCase() === 'z') undo()
```

Ne işe yarıyor

Sıra sende

  1. move fonksiyonunun kapanan }'sinin altına bir boş satır bırakıp undo fonksiyonunu yaz.
  2. keydown dinleyicisinde ok tuşlarının if bloğunun kapanan }'sinin altına z satırını yaz.
  3. Çalıştır, oyuna tıkla, birkaç adım at ve Z'ye bas: adımlar tek tek geri alınmalı.

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