Atölye › Candy Crush Tarzı Üçlü Eşleştirme › 15/29. adım

Silmenin iki yarısı

Ne yapıyoruz

Oyun çalışıyor ama her şey bir anda oluyor: bir tıklama ve tahta çoktan değişmiş. Oyuncu neyin olduğunu görmeli: eşleşen mücevherler bir an yanıp sönmeli, sonra kaybolmalı.

Bunun için işi iki yarıya bölüyoruz ki iki yarı farklı anlarda olabilsin:

  1. startClearing() → eşleşmeleri bul ve puanla;
  2. collapse() → eşleşenleri sil ve mücevherleri düşür.

İki fonksiyon da eşleşen hücrelere bakacağı için matched artık trySwap'ın içinde değil, en üstte tanımlı. Bu adımda ekranda bir şey değişmeyecek; yalnız kodu hazırlıyoruz.

```js
let matched // the cells being cleared

  startClearing()
  collapse()

function startClearing() {
  matched = findMatches()
  score += matched.size * 10
}

// Remove the matched gems; everything above falls down to fill the gaps, and new gems drop in from the top.
function collapse() {
  for (const cell of matched) board[Math.floor(cell / N)][cell % N] = -1
```

Ne işe yarıyor

Sıra sende

  1. let score satırının altına let matched ... yaz.
  2. trySwap içinde const matched = ..., score += ... ve for (const cell of matched) ... satırlarını sil; yerine startClearing() yaz (collapse() altında kalsın).
  3. collapse'ın yorum satırının üstüne startClearing fonksiyonunu yaz.
  4. collapse'ın yorumunu koddaki gibi değiştir; for (const cell of matched) ... satırını collapse'ın içinde ilk satır olarak yaz.
  5. Çalıştır: oyun eskisi gibi çalışmalı.

Beceriler: Fonksiyonlar, Oyun durumları

Tüm adımlar

  1. Tahtanın yeri
  2. Damalı ızgara
  3. Oyun döngüsü
  4. Rastgele mücevherli tahta
  5. Mücevherleri çiz
  6. Eşleşmesiz başla
  7. Bir mücevhere tıkla
  8. Seçimi göster
  9. İki komşuyu takas et
  10. Bütün eşleşmeleri bul
  11. Eşleşme yoksa takas yok
  12. Skor ve yeni başlangıç
  13. Eşleşeni sil
  14. Mücevherler düşsün
  15. Silmenin iki yarısı
  16. Silmeden önce bekle
  17. Yanıp sön, dokunma
  18. Zincirleme
  19. Mücevher nereden geldi
  20. Kayarak in
  21. Üstün altından çık
  22. Hiç hamle var mı?
  23. Asla sıkışma
  24. Beş saniye sonra ipucu
  25. İpucunu göster
  26. Yirmi hamle
  27. Oyunun sonu
  28. En iyi skoru hatırla
  29. Kendin yap: kaydırarak takas