Atölye › 15 Bulmacası › 13/27. adım
Bir taşı kaydırmak aslında çok basit: taş ile boşluk yer değiştirir. Listede taşın numarasını boşluğun yerine
yazar, taşın eski yerine 0 yazarız.
Ama sadece boşluğun komşusu olan taş kayabilir; uzaktaki bir taşa tıklamak hiçbir şey yapmamalı.
```js
// Slide the tile at position i into the gap, if it is next to the gap.
function move(i) {
const gap = tiles.indexOf(0)
if (!neighbors(gap).includes(i)) return
tiles[gap] = tiles[i]
tiles[i] = 0
}
```tiles.indexOf(0) → 0'ın (boşluğun) listede kaçıncı konumda olduğunu bulur.neighbors(gap).includes(i) → "i, boşluğun komşuları arasında var mı?" true ya da false.! → "değil". Komşu değilse return: fonksiyondan hemen çık, hiçbir şey değişmez.tiles[gap] = tiles[i] → taşın numarasını boşluğun yerine yaz.tiles[i] = 0 → taşın eski yeri artık boşluk.function squareX(i) { satırının üstüne yorum satırını ve move fonksiyonunu yaz; arada bir boş satır kalsın.
Çalıştır. Tıklamayı bir sonraki adımda bağlayacağız; kontroller fonksiyonu kendileri çağırıyor.
Beceriler: Oyun durumları, Diziler ve nesneler