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

Yukarı ve aşağı sütunlardır

Ne yapıyoruz

Yukarı ve aşağı sütunlarla çalışır. Yine aynı hile: bir sütunu yukarıdan aşağı bir satırmış gibi oku, sola (yani yukarıya) kaydır, sonra sütuna geri yaz. Aşağı da bunun ters çevrilmişi.

Tek bir test edilmiş fonksiyon, dört yönde. Küçük farklarla kod kopyalamak üzereyken böyle bir dönüşüm ara; bir parça kod bütün işi yapsın.

```js
// Every direction is "slide left" on a row or a column, possibly reversed.
function move(direction) {
  const before = JSON.stringify(board)
  const horizontal = direction === 'left' || direction === 'right'
  const reversed = direction === 'right' || direction === 'down'
  for (let i = 0; i < SIZE; i++) {
    const line = horizontal ? [...board[i]] : board.map((row) => row[i])

    if (horizontal) board[i] = row
    else row.forEach((value, r) => (board[r][i] = value))

const directions = { ArrowLeft: 'left', ArrowRight: 'right', ArrowUp: 'up', ArrowDown: 'down' }
```

Ne işe yarıyor

Sıra sende

  1. function move(direction) { satırının üstüne yorum satırını yaz.
  2. const reversed = direction === 'right' satırını sil; yerine horizontal ve yeni reversed satırlarını yaz.
  3. Döngüde const line = [...board[i]] satırını yenisiyle değiştir; board[i] = row satırını sil, yerine iki satırı (if ve else) yaz.
  4. directions tablosuna ArrowUp: 'up', ArrowDown: 'down' ekle.
  5. Çalıştır ve dört okla oyna. Oyun artık oynanabilir!

Beceriler: Diziler ve nesneler, Fonksiyonlar

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