Atölye › Tetris Tarzı Bloklar › 13/32. adım
Parçayı saat yönünde 90° döndürmek, matrisi için bir kuraldır. T'ye bak:
0 3 0 0 3 0
3 3 3 → 0 3 3
0 0 0 0 3 0
Soldakinin ilk sütunu, aşağıdan yukarı okununca (0, 3, 0) sağdakinin ilk satırı olur. İkinci sütun aşağıdan yukarı (0, 3, 3) → ikinci satır. Üçüncü sütun → üçüncü satır. Kâğıdı saat yönünde çevirmeyi düşün: sol kenar üste gelir.
Bu kuralı tek satırda yazan bir fonksiyon: rotate. Ekranda henüz bir şey değişmeyecek.
```js
// Clockwise: the first column, read from the bottom up, becomes the first row.
function rotate(shape) {
return shape[0].map((_, col) => shape.map((row) => row[col]).reverse())
}
```İçten dışa, parça parça oku:
shape.map((row) => row[col]) → her satırdan col numaralı sayıyı al: col sütununu yukarıdan aşağı bir liste
olarak topla..reverse() → listeyi ters çevir: artık aşağıdan yukarı.shape[0].map((_, col) => ...) → ilk satırın her elemanı için bir kez, yani her sütun için bunu yap; sonuçlar
yeni matrisin satırları olur. map fonksiyona eleman ile sıra numarasını verir; bize yalnız sıra numarası (col)
lazım, kullanmadığımız elemana _ deriz.map her zaman yeni bir liste yapar: asıl şekil değişmez.rotate fonksiyonunu function fits( satırının üstüne yaz; altında bir boş satır kalsın.Beceriler: Diziler ve nesneler, Fonksiyonlar
← Oklarla oynat Yukarı okla döndür →