Atölye › 15 Bulmacası › 17/27. adım

Gerçek kaydırmalarla karıştır

Ne yapıyoruz

Bulmaca karışık başlamalı. Akla gelen ilk yol listeyi bir deste kart gibi karıştırmak; ama bu bir tuzak (bir sonraki adımda nedenini göreceğiz).

Güvenli yol: çözülmüş tahtadan başlayıp 200 kez rastgele gerçek bir kaydırma yapmak. Az önce yapılanı hemen geri almamaya dikkat ederiz, yoksa boşluk ileri geri gidip durur. Böyle ulaşılan her tahta, hamleleri tersinden oynayarak mutlaka çözülebilir.

```js
// Mix the tiles by making random slides, so the puzzle can always be solved.
function shuffle(count) {
  let gap = tiles.indexOf(0)
  let previous = -1
  for (let n = 0; n < count; n++) {
    const options = neighbors(gap).filter((i) => i !== previous) // do not undo the last slide
    const i = options[Math.floor(Math.random() * options.length)]
    tiles[gap] = tiles[i]
    tiles[i] = 0
    previous = gap
    gap = i
  }
}

  tiles = solvedTiles()
  shuffle(200)
```

Ne işe yarıyor

Sıra sende

  1. function reset() { satırının üstüne yorum satırını ve shuffle fonksiyonunu yaz; arada bir boş satır kalsın.
  2. reset içinde tiles = solvedTiles() satırının altına shuffle(200) yaz.
  3. Çalıştır'a birkaç kez bas: her seferinde farklı karışık bir tahta görmelisin. Artık gerçekten oynayabilirsin!

Beceriler: Döngüler, Diziler ve nesneler

Tüm adımlar

  1. Tek listede bir tahta
  2. Tuval ve kalem
  3. Masayı boya
  4. Çizen bir fonksiyon
  5. Satır ve sütun
  6. Her kare nerede
  7. Bir taş çiz
  8. Taşın üstündeki sayı
  9. Bütün taşlar
  10. Tekrar tekrar çiz
  11. N'den çözülmüş tahta
  12. Komşular
  13. Taş kaydır
  14. Taşa tıkla
  15. Ok tuşları
  16. Hamleleri say
  17. Gerçek kaydırmalarla karıştır
  18. Hangi tahtalar çözülür?
  19. Çözüldü mü?
  20. Kaymayı hatırla
  21. Kareleri say
  22. Akıcı kayma
  23. Çözüldü!
  24. Kazandığını göster
  25. Yeniden oyna
  26. Kırılacak bir rekor
  27. Kendin yap: bir süre sayacı