Atölye › Tetris Tarzı Bloklar › 7/32. adım
Bütün parça şekillerini tek bir listede toplayacağız: SHAPES. Önce üçüyle başlıyoruz: uzun I, kare O ve
T. Sayılar renk: I camgöbeği (1), O sarı (2), T mor (3).
Dikkat: bütün matrisler kare (4×4, 2×2, 3×3); bazılarında boş satırlar var. Boşa yer harcıyor gibi görünür ama birkaç adım sonra parçayı merkezi etrafında döndürmemizi sağlayan şey bu.
Düşen parça, şablonun kendisini değil bir kopyasını alacak. Sebebi: parçayı döndürüp değiştirdiğimizde asıl şablon bozulmasın.
```js
// Each piece is a square matrix; the number is its color. Square matrices rotate around their center.
const SHAPES = [
[
[0, 0, 0, 0],
[1, 1, 1, 1],
[0, 0, 0, 0],
[0, 0, 0, 0],
],
[
[2, 2],
[2, 2],
],
[
[0, 3, 0],
[3, 3, 3],
[0, 0, 0],
],
]
let piece = { shape: SHAPES[2].map((row) => [...row]), x: 3, y: 0 }
```const SHAPES = [ ... ] → matrislerin listesi. Matrisi satır satır alt alta yazmak şekli gözle görmeyi kolaylaştırır.SHAPES[2] → üçüncü şekil (sayma 0'dan): T.SHAPES[2].map((row) => [...row]) → kopya çıkarır:.map(...) listedeki her elemanı bir fonksiyondan geçirip yeni bir liste yapar.(row) => [...row] → kısa yazılmış bir fonksiyon (ok fonksiyonu): girdisi row, sonucu =>'nin sağı.[...row] → üç nokta (yayma, spread): satırın elemanlarını yeni bir diziye döker. Yani satırın kopyası.SHAPES'e dokunmaz.COLORS satırının altına yorum satırını ve üç matrisli SHAPES listesini yaz.let piece satırında shape: değerini SHAPES[2].map((row) => [...row]) yap.Beceriler: Diziler ve nesneler
← Parça küçük bir ızgaradır Yedi parçanın hepsi →