Atölye › 2048 › 15/26. adım
Sağa kaydırmak için ikinci bir fonksiyon gerekmez. Bir hile: satırı ters çevir, sola kaydır, sonucu geri çevir. Ters çevrilmiş satırı sola kaydırmak, asıl satırı sağa kaydırmakla aynı şeydir.
[2, 2, 0, 0] → ters → [0, 0, 2, 2] → sola → [4, 0, 0, 0] → ters → [0, 0, 0, 4]
Bir aynaya bakıp sola yürümek gibi.
```js
const reversed = direction === 'right'
const line = [...board[i]]
if (reversed) line.reverse()
const { row } = slideRow(line)
if (reversed) row.reverse()
const directions = { ArrowLeft: 'left', ArrowRight: 'right' }
```const reversed = direction === 'right' → sağa mı gidiyoruz? true ya da false.line.reverse() → diziyi yerinde ters çevirir: yeni bir dizi yapmaz, dizinin kendisini değiştirir.
board[i]'yi doğrudan çevirseydik tahtanın satırı da çevrilirdi.[...board[i]] → ... (yayma, spread) satırın elemanlarını yeni bir dizinin içine döker: bir
kopya. Kopyayı çevirmek tahtaya dokunmaz.if (reversed) row.reverse() → kaymış satırı geri çevir. row zaten slideRow'un yeni dizisi, onu çevirmek
güvenli.ArrowRight: 'right' eklendi.move içinde const before = ... satırının altına reversed satırını yaz.const line = board[i] satırını const line = [...board[i]] yap; altına if (reversed) line.reverse()
yaz. const { row } = ... satırının altına if (reversed) row.reverse() yaz.directions tablosuna ArrowRight: 'right' ekle.Beceriler: Diziler ve nesneler
← Yalnız gerçek hamleler sayılır Yukarı ve aşağı sütunlardır →