Atölye › 2048 › 11/26. adım

Eşit karoları birleştir

Ne yapıyoruz

Şimdi oyunun kalbi: birleştirme. İki eşit komşu karo tek bir karoda birleşir, değeri iki katına çıkar. Ama bir kural var ve ilk denemelerin çoğu burada yanılır: birleşmeden yeni çıkan karo aynı hamlede bir daha birleşemez.

[2, 2, 2, 2]  →  [4, 4, 0, 0]    [8, 0, 0, 0] değil
[4, 4, 8, 0]  →  [8, 8, 0, 0]    [16, 0, 0, 0] değil

Sıfırları zaten attık; karoları soldan sağa yürürken bir karo bir sonrakine eşitse toplamlarını yazıp sonrakini atlarız. Böylece bir karo iki kez kullanılamaz.

```js
if (tiles[i] === tiles[i + 1]) {
  result.push(tiles[i] * 2)
  gained += tiles[i] * 2
  i++ // the next tile was used up by this merge
} else {
  result.push(tiles[i])
}
```

Ne işe yarıyor

Sıra sende

slideRow içindeki döngüde result.push(tiles[i]) satırını sil; yerine if ... else bloğunu yaz. Çalıştır.

Beceriler: Döngüler

Tüm adımlar

  1. Tahta
  2. On altı hücre
  3. Sayılardan bir ızgara
  4. Her sayıya bir renk
  5. Karolara sayılar
  6. Büyük sayı, küçük yazı
  7. Boş hücreleri bul
  8. Yeni bir karo
  9. Başlangıçta iki karo
  10. Bir satırı kaydır
  11. Eşit karoları birleştir
  12. Sola hareket
  13. Ok tuşu
  14. Yalnız gerçek hamleler sayılır
  15. Sağ, ters çevrilmiş sol
  16. Yukarı ve aşağı sütunlardır
  17. Skor
  18. Hamle kaldı mı?
  19. Oyun bitti
  20. 2048 yapmak
  21. Kazanma ve kaybetme ekranları
  22. Devam için Boşluk
  23. Rekor
  24. Kaydırmalar
  25. Dokunmak kaydırmak değildir
  26. Kendin yap: geri al