Atölye › Tetris Tarzı Bloklar › 15/32. adım
Duvara dayanmış bir parça çoğu zaman yerinde dönemez ve oyunun "hayır" demesi çok kötü hissettirir. Çözüm duvar itmesi (wall kick): aynı dönüşü 1 ya da 2 hücre yana kaydırarak da deneriz. Sığan ilk yer kazanır.
Deneme sırası: hiç kaydırmadan (0), 1 sola, 1 sağa, 2 sola, 2 sağa. Gerçek oyunlar büyük itme tabloları kullanır; bu basit liste çoğu durumu çözer.
```js
const turned = rotate(piece.shape)
// Wall kicks: if the turned piece does not fit, try nudging it sideways.
for (const kick of [0, -1, 1, -2, 2]) {
if (fits(turned, piece.x + kick, piece.y)) {
piece.shape = turned
piece.x += kick
return true
}
}
return false
}
```for (const kick of [0, -1, 1, -2, 2]) { → listedeki her sayı için içini sırayla bir kez çalıştır.if (fits(turned, piece.x + kick, piece.y)) { → dönmüş şekil kick kadar kaymış hâlde sığıyor mu?kick kadar kaydır ve return true. return fonksiyonu bitirdiği için geri kalan
kaymalar denenmez.return false çalışır.0: açık alanda parça yine yerinde döner.tryRotate içinde const turned = rotate(piece.shape) satırının altındaki her şeyi (kapanan } dahil) sil;
yerine koddaki satırları yaz.Beceriler: Çarpışma tespiti, Döngüler
← Yukarı okla döndür Kendiliğinden düşüş →